[C语言]求输入任意字符串,然后输出该字符串中每个字符ASCII码

#include<stdio.h>
void main()
{

char ch[100];
int i;
i=0;
printf("请输入一个字符串\n");
scanf("%c",ch);
while(ch[i]!='\n')
{
printf("%c=%d",ch[i],ch[i]);
i++;
}
}
为什么不正确呢??
scanf("%c",ch);改为:
scanf("%c",&ch);

%c是一个字符,不是字符串,要改成%s;
while的条件是!=‘\0'不是\n';
最后你说的那个也是关键,得改追问

为什么while的条件是!=‘\0'不是\n'呢?

追答

字符串的末尾结束标志是\0;
当你输入字符串“*******”,回车结束时,scanf()函数将所有的输入都当做字符读入,直到遇到空格或者回车时,认为字符串输入完了,于是在末尾加上结束标志\0,而空格和回车不读取,任然留在键盘缓冲区;

温馨提示:答案为网友推荐,仅供参考
相似回答