马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lwhnx 于 2017-11-24 21:18 编辑
比如S1E13 动动手第一题 换大小写 我自己用getchar与putchar可以运行 如下:#include <stdio.h>
int main()
{
char ch;
int i;
printf("请输入一行英文句子:");
for(i=0;(ch=getchar())!='\n';i++)
{
if('A'<=ch && ch<='Z')
{
ch=ch + 32;
}
else if('a'<=ch && ch<='z')
{
ch=ch - 32;
}
putchar(ch);
}
putchar('\n');
return 0;
}
但是我用下标 运行不了 问题在哪 如下:
#include <stdio.h>
int main()
{
char ch[100];
int i;
printf("请输入一行英文句子:");
gets(ch);
for(i=0;ch[i]!='\n';i++)
{
if('A'<=ch[i] && ch[i]<='Z')
{
ch[i]=ch[i] + 32;
}
else if('a'<=ch[i] && ch[i]<='z')
{
ch[i]=ch[i] - 32;
}
}
printf("%c\n", ch);
return 0;
}
看到楼主的例子,想和楼主说说 getchar 和 gets 的区别:
getchar:从输入缓冲区中读取一个字符;
分析第一个程序:
使用了getchar函数作为输入,该函数每次会读取一个字符,然后进行判断,如果输入的是'\n',那么就停止循环
gets:从输入缓冲区中字符遇到'\n'是结束,但是'\n'并不会读取字符串,而会转换成'\0',加在读取字符的尾部。
分析第二个程序:
使用了gets函数作为输入,该函数读取的是字符串,所以 ch[i] != '\n',要改为 ch[i] !='\0',输出格式 %c 改成 %s.
|