⑴ c語言一串字元串中提取數字並相加的問題
#include<stdio.h>
main()
{
char
x;
char
input1='\0';
char
input2='\0';
int
number1=0;
int
number2=0;
printf("請輸入字元串1:(輸入?結束)");//輸入?作為字元串1的結束符
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//每檢查到一個數字就要乘10,進一位
number1=number1*10+input1-'0';//比如字元'9'-'0'之後的罩激態數是數字9
}
x='\物源0';//將字元x重置值,因為原來是等於?的
printf("請輸入字元串2:(輸入?結束)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("兩串數之和為%d",number1+number2);
getch();
}//沒有用到數組和指針,也沒鉛歷有調用函數,真不明作業這么多要求。。。
//希望能幫到你
⑵ C語言求輸入一段字元串 將其中連續的數字相加
#include<stdio.h>
void main()
{
char s[100],*p=s;
int sum=0,i,j;
gets(s);
while(*p)
{i=0;
while(*p&&(*p<'0'||*p>'9'))p++;
while(*p&&(*p>='0'&&*p<='9'))
{i=10*i+*p-'0'; p++;}
sum+=i;
}
printf("sum=%d ",sum);
}
⑶ C語言字元相加問題
本質上沒區別,都是字元的加法,但結果區別很大,'1'+'0'本質上是兩個字元相加,會按ascii碼轉成對應的數值再加,'0'的ascii碼為48,'1'為49,相加後為97(97是'a'的ascii碼),所以如果你用
printf("%d %c",'1'+'0','1'+'0');
會輸出97 a
同樣的原理1+'0',會得到49(也就是'1'的ascii碼),如果是
printf("%d %c",1+'0',1+'0');
就會輸出49 1
⑷ c語言,累加一行字元中的數字
試一下這個
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char str[81];
int i, sum = 0;
scanf("%s", str);
for (i = 0; str[i] != '\0'斗搭; ++i){
if (isdigit(str[i]))
sum += str[i]-'0'空孝拿;
}
printf("%d", sum);
return 0;
}
我用了isdigit()函慎戚數 希望你能通過
⑸ c語言輸入一個字元串,求所有數字之和
遍歷整個字元串,判斷是否是數字,再計算累祥此加和:
#include<stdio.h>
#include<孫敗string.h>
intmain()
{
chara[1000];//定義字元串
inti,sum=0,n;
gets(a);//輸入字元串
n=strlen(a);//求字元串長度
for(i=0;i<n;i++)//遍歷字元串判斷是否是數字
if(a[i]>='0'&&a[i]<='9')//如果是數字就累加
sum+=a[i]-'0';
printf("字元串中數字的和為:%d ",sum);//保留數字累加和
return0;
}
/*
運行結果:
jkahf343124asdfasfdasdf1
字元串中謹凱迅數字的和為:18
*/
⑹ C語言怎麼實現 由鍵盤輸入一行字元,將其中每個數字字元所代表的數值累加起來,輸出結果。
#include <stdio.h>
#include <conio.h>
void main(void)
{
char ch;
int sum = 0;
while((ch=getche())!='\r')//按下回車鍵悶檔,退出讀入,並輸出結果胡塵
{
if (ch>='0'&&ch<='9')
{
sum += ch - '0';
}
}
printf("\n%d\褲罩禪n",sum);
}
⑺ c語言把數字字元串中的數字相加的程序
代碼如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[100];
char buf[10];
int i;
int n = 0;
bool flag = 0;
int j = 0;
//gets(str);
scanf("%s", str);
for (i = 0; i != strlen(str); ++ i)
{
if (str[i] >= '0' && str[i] <= '9')
{
buf[j] = str[i];
j++;
flag = 1;
}
else if (flag)
{
n += atoi(buf);
memset(buf,0,10);//清空緩存區
flag = 0;
j = 0;
}
}
printf("%s",buf);
printf("%d ", n);
}
(7)c語言將一排字元的數值相加擴展閱讀
(C語言)常見字元函數和字元串函數
1、strlen
功能:計算字元串長度,不包含』 』
返回值:返回字元串的字元數
說明:strlen() 函數計算的是字元串的實際長度,遇到第一個』 』結束;參數指向的字元串必須以 』 『結束。函數返回值一定是size_t ,是無符號的。如果你只定義沒有給它賦初值,這個結果是不定的,它會從首地址一直找下去,直到遇到』 』停止。
sizeof返回的是變數聲明後所佔的內存數,不是實際長度,此外sizeof不是函數,僅僅是一個操作符,strlen()是函數。
2、strcpy
功 能: 將參數src字元串拷貝至參數dest所指的地址
返回值: 返回參數dest的字元串起始地址
說明:源字元串必須以』 』結束。會將源字元串的』 』拷貝到目標空間。目標空間必須可變。如果參數dest所指的內存空間不夠大,可能會造成緩沖溢出的錯誤情況,在編寫程序時需特別留意,或者用strncpy()來取代。
⑻ c語言怎樣把字元串里的數字相加
#include <iostream>//和cout,cin標准輸出輸入有關
#include <ctype.h>//和isdigit()函數有關
#include <stdlib.h>
int const STR_LEN = 64;//輸入字元串最大長度
using namespace std;//瞎高也和輸入輸御搏出有關
void main()
{
int i = 0, sum =0;
char c[STR_LEN];
cout<<"type a string:";
cin>>c;//得到字元串
while(c[i])
{
if(isdigit(c[i])) sum += c[i] - '0';//判斷當磨拆尺前字元是不是數字的ascii碼,是的話c[i]-'0'就是對應數字
i++;
}
cout<<"sum = "<<sum<<endl;//輸出結果
}
⑼ C語言 數字字元相加怎麼實現
#include<stdio.h>
voidmain(){charas[]={"11"},bs[]={"1"};inta,b,c,i;
i=a=0;while(as[i]!=0){a*=10;a+=as[i]-'0';i++;}
i=b=0;while(bs[i]!=0){b*=10;b+=bs[i]-'0';i++;}
c=a+b;
printf("%s+%s=%d ",as,bs,c);
}
⑽ C語言:對一個字元串中的數值字元求和 例如:」1a2b3c45d」=51
標標准準的 c 語言獻上冊備。
#include<ctype.h>
#include<stdio.h>
intparseInt(intnum[],intn){
inti,ret=0;
for(i=0;州兆毀i<n;++i){
ret*=10;
ret+=num[i];
}
returnret;
}
intmain(void){
chars[]="1a2b3c45d";
inti,num[8],k,猜猜sum=0;
for(i=0;s[i]!='