C语言,如何输入一个以回车结束的字符串??
这两道不同的题都需要“输入一个以回车结束的字符串”,但是写的不一样,运行都是对的。但我把两道题这个部分对调一下就都不对了,到底应该怎么写“输入一个以回车结束的字符串”这段...
这两道不同的题都需要“输入一个以回车结束的字符串”,但是写的不一样,运行都是对的。但我把两道题这个部分对调一下就都不对了,到底应该怎么写“输入一个以回车结束的字符串”这段程序啊?好困惑……
那个第一题在while前为什么不能写getchar,第二题又为什么要在while前写getchar……求解T T
1.
#include<stdio.h>
int main(void)
{
int i=0,count=0;
char s[80],c;
printf("Input a string: ");
while((c=getchar())!='\n') 从这里开始
{
s[i++]=c;
}
s[i]='\0'; 到这里结束
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
if(s[i]!='A'&&s[i]!='E'&&s[i]!='I'&&s[i]!='O'&&s[i]!='U')
count++;
}
}
printf("count=%d",count);
return 0;
}
2.
#include<stdio.h>
int main()
{
char ch[80],c,i=0,flag=0;
int index;
printf("Input a character: ");
scanf("%c",&c);
printf("Input a string: ");
getchar(); 从这里开始,
while((ch[i]=getchar())!='\n')
i++;
ch[i]='\0'; 到这里结束。
for(i=0;ch[i]!='\0';i++)
if(c==ch[i]){
index=i;
flag=1;}
if(flag==1)
printf("index=%d",index);
else if(flag==0)
printf("Not Found\n");
return 0;
} 展开
那个第一题在while前为什么不能写getchar,第二题又为什么要在while前写getchar……求解T T
1.
#include<stdio.h>
int main(void)
{
int i=0,count=0;
char s[80],c;
printf("Input a string: ");
while((c=getchar())!='\n') 从这里开始
{
s[i++]=c;
}
s[i]='\0'; 到这里结束
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
if(s[i]!='A'&&s[i]!='E'&&s[i]!='I'&&s[i]!='O'&&s[i]!='U')
count++;
}
}
printf("count=%d",count);
return 0;
}
2.
#include<stdio.h>
int main()
{
char ch[80],c,i=0,flag=0;
int index;
printf("Input a character: ");
scanf("%c",&c);
printf("Input a string: ");
getchar(); 从这里开始,
while((ch[i]=getchar())!='\n')
i++;
ch[i]='\0'; 到这里结束。
for(i=0;ch[i]!='\0';i++)
if(c==ch[i]){
index=i;
flag=1;}
if(flag==1)
printf("index=%d",index);
else if(flag==0)
printf("Not Found\n");
return 0;
} 展开
3个回答
展开全部
库函数fgets把'\n'作为结束命令,同时也当作一个字符存储到目标空间里,并在其后加一个'\0'。所以用fgets接收键盘输入就能方便地达到题面的要求。可用下列代码测试:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char a[100];
fgets(a,100,stdin);//stdin表示从键盘输入而不是从文件
printf("%s",a);//这里%s后没有\n,但输出是有回车的
return 0;
}
这里使用了printf("%s",a);(输出字符串)而非printf("%s\n",a);(输出字符串加'\n'),却能达到后者的效果,是因为fgets函数把最后输入的'\n'作为一个字符存储在字串末尾了,在'\n'之后才加一个'\0',所以这里的回车是由字符串的最后一个字符'\n'产生的。正好达到题面的要求——“输入一个以回车结束的字符串”!
展开全部
printf("Input a character: ");
scanf("%c",&c); //你输入的时候是回车结束,那么回车符要下面的getchar接受
printf("Input a string: ");
getchar(); //接受上面的回车符
第一题,没有scanf这句所以不用加getchar
scanf("%c",&c); //你输入的时候是回车结束,那么回车符要下面的getchar接受
printf("Input a string: ");
getchar(); //接受上面的回车符
第一题,没有scanf这句所以不用加getchar
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(c=scanf("%c",%str[i]!='\n')i++;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询