刚学C语言,不太懂。把键盘输入的由数字字符组成的字符串转换为相应的数字。例如把"123"转换为整数123

2025-03-28 07:26:20
推荐回答(4个)
回答(1):

有很多方法,我这里用sscanf()函数实现,它的作用是从字符串读取,而不是从标准输入读取,除此之外,和scanf()函数相同:

//---------------------------------------------------------------------------

#include

int main(void)
{
char a[80];
int b;
scanf("%s",a);//输入字符串
sscanf(a,"%d",&b);//从字符串a读取一个整数
printf("%d\n",b);//输出这个整数
return 0;
}
//---------------------------------------------------------------------------

回答(2):

#include
int main(){
char a[10000];
int num=0,i=0;//num用来保存结果,i表示数组下标
gets(a);//接收字符串到数组a的库函数
while(a[i]!='\0'){//字符串结束符'\0'
num=num*10+(a[i]-48);//48是0的asc码值,字符在进行运算时是用它的asc码来计算的
i++;
}
printf("%d",num);
while(1);
return 0;
}

我运行了一下,是可以的。希望对你有所帮助。

回答(3):

#include
#include
#include
void main()
{
int i;
char ch[20];
aa: printf("请输入:");
gets(ch);
for(i=0;i {
if(ch[i]<'0' || ch[i]>'9')
break;
}

if(i < strlen(ch))
{
printf("输入只能为数字\n");
goto aa;
}
else
i = atoi(ch);

printf("%d\n",i);
}

用到一个stdlib.h头文件的atoi方法就行了

回答(4):

void main(){
char a[];
int i,s=0;
gets(a);
for(i=0:a[i]!=0:i++)
s=10*s+a[i]-'0';
printf("%d",s):}