问题描述
- C++中如何将输入的字符串中的数字提取出来做加减法
-
char shu[100];
scanf("%s",shu);
int sum;
sum+=字符串中的数字
这个应该怎样完成?当我提取了字符串中的数字后,但发现字符串中的数字是以ASIii的形式运算的,这该怎么办?
解决方案
#include "stdafx.h"
#include <string.h>
void main()
{
char shu[100];
scanf("%s",shu);
int sum;
sum=0;
int len=strlen(shu);
for(int i=0; i<len; i++)
{
if( shu[i]>='0' && shu[i]<='9')
sum+=shu[i]-'0';
}
printf("sum=%dn",sum);
getchar();
getchar();
}
解决方案二:
用if一个一个元素的判断,如果是数字,就把后面的元素向前移动,覆盖掉数字,就ok啦
解决方案三:
自己百度sscanf和sprintf
解决方案四:
用函数atoi(shu)转换下就行
解决方案五:
楼上的只是整数,如果是一百位就gg了
楼主可以百度一下大数加法,acm入门基础题
解决方案六:
如果你字符串里全是数字 来个循环 每个字符-48 用整形接收 然后再来个循环 将每个数字按位组合 变成真正的数值 就ok了
解决方案七:
用库函数啊,或者直接用字符串运算完后再转换成数字,atoi()
解决方案八:
https://code.csdn.net/snippets/535409
解决方案九:
进行for循环每一位,i=0;从头开始遍历,如果数大于10,则continue
解决方案十:
#include "stdafx.h"
#include
void main()
{
char shu[100];
scanf("%s",shu);
int sum;
sum=0;
int len=strlen(shu);
for(int i=0; i
{
if( shu[i]>='0' && shu[i]<='9')
sum+=shu[i]-'0';
}
printf("sum=%dn",sum);
getchar();
getchar();
}
时间: 2024-11-03 08:13:31