这是我的源代码:
#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/