为啥这样不可以把一个数组的ASCLL码放到另一个数组中
//只取第一次出现的值,然后加次数#include <stdio.h>
#include <string.h>
int main()
{
char ch;
int i;
int num;
printf("请输入英文文本:");
for(i=0;i<100;i++)
{
scanf("%c",&ch);
if(ch=='\n')
{
ch='0';
break;
}
}
num='\0';
printf("你总共输入了%d个字符\n",strlen(ch)-2);
for(i=0;i<strlen(ch)-2;i++)
{
printf("%c的码是%d\n",ch,ch);
}
for(i=0;i<strlen(ch);i++)
{
num=(int)(ch);
}
printf("%s\n",num);
return 0;
}
please 本帖最后由 jackz007 于 2019-12-8 16:16 编辑
scanf("%c" , & ch) ;
这一句 ch[ i ] 的值永远也不可能是换行符 '\n',因为这个函数独独会把换行符遗留在键盘缓冲区中。只有使用 getchar() 才可以连换行符一起把所有键盘输入字符都提取出来。这就意味着楼主的程序将陷在键盘输入的死循环中。
输入字符串不用这么麻烦,直接用下面这句不行吗?
scanf("%s" , ch) ; #include <stdio.h>
#include <string.h>
int main()
{
char ch={0};
int i;
int num={0};
printf("请输入英文文本:");
scanf("%s",ch);
printf("你总共输入了%d个字符\n",strlen(ch));
for(i=0;i<strlen(ch);i++)
{
num=(int)(ch);
}
for(i=0;i<strlen(ch);i++)
{
printf("%c的码是%d\n",ch,num);
}
return 0;
}
自己看
页:
[1]