1、改错(请注解为什么要这样改)
#include "stdio.h"
#include"string.h"
int main()
{
inti,s; /*请修改此处 */
char str[80];
i=0;
while ((str[i]=getchar())!='\n')
i++;
str[i]='\0';
for(i=0;i<80;i++)
if (str[i]<='0' || str[i]>='9') /*请修改此处*/
s=s*10+str[i]; /*请修改此处*/
printf("%d",s);
return 0;
}
输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(0~9)转换位整数,去掉其他字符。例如字符串“3a56bc”转换位整数后是356。
2、编程题输入一个字符串,在指定位置插入一个字符。
还有请问strcpy(str2,str+i)中的str+i是什么意思呢??
追答帮你第二个都写了都不采纳,唉。
str表示str数组的首地址,str+i表示数组的第i个元素的地址,也就是说把str+i后面的字符串拷贝到str2字符串数组里面。
你好,我想问一下str[i]这个不是代表一个数吗?平时的printf("%d",str[i])数出的是一个数而不是符号啊?
追答str[i]只代表一个字符, 你可以理解为是一个ascii码,比如'0',从字符角度讲他是0,但他对应的整数值是48。所以每个char字节都可看做是一个ascii码,这个ascii码可以用字符、整数表示。
printf("%c %c\n", 48, 57);这就是将整数和ascii码对应的字符打印出来,整数、字符具有对应关系的。