好听的谐音名字:C语言中字符串的输入问题?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 16:58:37
C语言中字符串的输入有两种方法:
char str[100];
一是: scanf("%s",str);
二是: gets(str);

但是下面两个程序,用不同的输入语句结果有一个是错误的.
程序一输出的结果错误.
#include "stdio.h"
main()
{ char str[100],c;
int i,count;
printf("input a array: \n");
scanf("%s",str);
printf("input a char: \n");
c=getchar();
count=0;
for(i=0;str[i]!='\0';i++)
if(c==str[i])
count++;
printf("count=%d\n",count);
}

程序二: 输出的结果正确
#include "stdio.h"
main()
{ char str[100],c;
int i,count;
printf("input a array: \n");
gets(str);
printf("input a char: \n");
c=getchar();
count=0;
for(i=0;str[i]!='\0';i++)
if(c==str[i])
count++;
printf("count=%d\n",count);
}

为什么这两个程序会出现不同的结果昵?希望大家帮帮忙!谢谢!
第一个程序中出现的错误是 c=getchar(); 这个语句不能执行,导致最后输出的count的值为0 .

如果更改了字符串输入语句后,整个程序就能够正确输出结果了.第二个程序能够正确输出结果.

但是字符串输入的两个语句功能都是一样的,为什么在运行时会出现不同的结果?

那个错误的你要把str定义为string,好像还要#include "string.h"就行了

第二个程序最后面要加一个getch();啊,否则看不到结果的