这是我的源代码:

#include <stdio.h>
#include <string.h>

void main()
{
    int broj_znakova,i=0;
    char niz1[81],niz2[81];

    printf("Enter something, for end Ctrl/c \n\n");
    while(fgets(niz1,81,stdin)!=NULL)
    {
        continue;
    }
    printf("You just enter: %s \n",niz1);
    printf("This string is long %d\n",(strlen(niz1)-1));
    strcpy(niz1,niz2);
    printf("niz2 is %s\n",niz2);
    if(strcmp(niz1,niz2)==0)
    {
        printf("niz1 and niz2 is same\n");
    }
    else
    {
        printf("niz1 != niz2\n");
    }
    while(niz1[i]!='\n')
    {
        if(niz1[i]==' ')
        {
            broj_znakova ++;
            i=i+1;
        }
    }
    printf("Spaces in string = %d\n",broj_znakova);
}

当我按 Ctrl/c 时,我得到了一堆奇怪的字符,有人可以帮忙吗???
我在谷歌上搜索了一些关于冲洗的信息,但我是新来的 :)

最佳答案

niz2 的内容未初始化。这将导致未定义的行为。也许您打算将 niz1 复制到 niz2 。如果是这样,那么您需要反转 strcpy 调用中的参数。对于 strcpy ,第一个参数是目标。

还要注意变量 broj_znakova 永远不会被初始化。

关于c - c 中的奇怪字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10906218/

10-12 00:20