C语言字符串转换数字

在键盘上以字符串的形式输入一段数字,然后将字符串形式的数字从头到尾挨个转换成数字,接着将顺序的数字和逆序的学号相加,最后将和输出到屏幕

你意思是字符串"123"转换为整数123吗?

将顺序的数字和逆序的学号相加----怎么抛出来一个学号?是指将123+321求和?

Ascii字符转数字,用ascii-48就可以了。

void main()
{
    char c[8];
    scanf("%s",&c);
    int a[8] = {0};
    int i,j;
    for(i=0;c[i] != 0;i++)
        a[i] = c[i] - '0';
    int m=0,n=0;
    int b = 1;
    for(j=i-1;j>=0;j--)
    {
        m+=a[j]*b;
        b*=10;
    }
    b = 1;
    for(j=0;j<i;j++)
    {
        n+=a[j]*b;
        b*=10;
    }
    printf("转换的整数为:%d,整数与逆序整数和为:%d\n",m,n+m);
}

 

使用atoi()函数可以直接把字符串数字转成整数

供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char n[64];
    int i,j,len,num1=0,num2=0;
    scanf("%s",n);
    len = strlen(n);
    for(i=0,j=len-1;i<len;i++,j--)
    {
       num1 = num1*10 + n[i]-'0';
       num2 = num2*10 + n[j]-'0';
    }
    printf("%d\n",num1+num2);
    
    return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632