當前位置:首頁 » 編程語言 » c語言從字元串中提取數字

c語言從字元串中提取數字

發布時間: 2022-09-23 14:43:20

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>
int
main()
{
char
str[1000];//保存讀取到的字元串
long
sum=0,data[1000];
int
i=0,top=0;
printf("輸入字元串:\n");
scanf("%s",str);
while(str[i]!='\0')//未到字元串末尾
{
if(str[i]>='0'&&str[i]<='9')//如果是數字
sum=sum*10+(str[i]-'0');//連續數字轉換為數.
else
if(sum!=0)//保存這個數
{
data[top++]=sum;
sum=0;
}
i++;
}
if(sum!=0)//判斷最後一個字元是否是數
data[top++]=sum;
printf("字元串中的數字是:\n");
i=0;
while(i<top)
{
printf("%ld",data[i]);
if(i<top-1)//不列印最後一個逗號
printf(",");
i++;
}
printf("\n");
system("pause");
return
0;
}

⑶ C語言如何把一個字元串中的數值全提取出放在一個數組裡面

#include
int
main()
{
char
a[5];
int
i
=
1101;
sprintf(a,"%d",i);
printf("%s",a);
}
用sprintf時,char
a需要比整形數字多一位,因為最後一位需要添加結束符

⑷ C語言 將用戶輸入的字元串中的所有數字提取出來

樓主採納我吧
#include
<stdio.h>
void
main()
{
char
str[80],digit[80];
char
*ps;
int
i=0;
gets(str);
ps=str;
while(*ps!='\0')
{
if(*ps>='0'&&*ps<='9')
{
digit[i]=*ps;//若當前字元是數字字元,保存到digit【i】裡面,並且i的下標加1
i++;
}
ps++;//不管是不是,判斷完當前的字元*ps之後,ps++,表示移動到下一個字元判斷
}
digit[i]='\0';//給保存數字字元的字元數組加上個結束符號『\0』,因為printf(%s)是以'\0'表示字元結束的
}

⑸ C語言如何把一個字元串轉換成數字

C語言中,可以使用atoi函數將字元串轉換為數字,如atoi("123")可以得到數字123。

atoi (表示 ascii to integer)是把字元串轉換成整型數的一個函數,應用在計算機程序和辦公軟體中。int atoi(const char *nptr) 函數會掃描參數 nptr字元串,會跳過前面的空白字元(例如空格,tab縮進)等。

如果 nptr不能轉換成 int 或者 nptr為空字元串,那麼將返回0。特別注意,該函數要求被轉換的字元串是按十進制數理解的。atoi輸入的字元串對應數字存在大小限制(與int類型大小有關),若其過大可能報錯-1。

(5)c語言從字元串中提取數字擴展閱讀:

C語言中數字轉化為字元串的方案:

使用sprintf函數來實現,如sprintf("%d", 123)可以得到字元串"123"。

sprintf指的是字元串格式化命令,主要功能是把格式化的數據寫入某個字元串中。sprintf 是個變參函數。使用sprintf 對於寫入buffer的字元數是沒有限制的,這就存在了buffer溢出的可能性。解決這個問題,可以考慮使用 snprintf函數,該函數可對寫入字元數做出限制。

⑹ 編寫C語言函數提取字元串里的整數

#include <stdio.h>
#define MAX_STR_LEN 10
int strToInt(char str[])
{
int i = 0;
int num = 0;
if(str[i]== '\0')
return -1;
else

if(!(str[i] <= '9' && str[i] >= '0'))

return 0;
else
{
while((str[i] <= '9' && str[i] >= '0')&& str[i] != '\0')
{
num = num *10+str[i]-'0';
i++;

}
return num;
}

}
int main()
{
char s[MAX_STR_LEN];
while(gets(s) != NULL)
printf("%d\n", strToInt(s));
return 0;
}

⑺ C語言中怎樣從一串數字中提取一個數

可以先把這個數字改成一個字元串, 然後再把你要的第幾個數字提出來即可, 如:
int i = 12345;
char ch[10];
sprintf(ch, "%d", i); //把i輸出到字元串(和printf用法一樣)
printf("%c\n", ch[2]); //輸出這個字元串的第3個字元(下標是2)
就會輸出3

⑻ C語言,從字元串中找出數字串

#include <string.h>
#include <stdlib.h>
void main(){
char str[400],a[30][30],*p;
int i=0,j=0,k,flag=0;
gets(str);
p=str;
for(;*p!='\0';p++){
if(*p>='0'&&*p<='9'){
a[i][j++]=*p;
flag=1;}
else if(flag==1){
i++;
j=0;
flag=0;}
}
for(k=0;k<=i;k++){
for(j=0;a[k][j]!='\0';j++)
printf("%c",a[k][j]);
printf("\n");}
}

⑼ 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>

#include<math.h>

#include<stdlib.h>

intmain()

{

intz=0;

intt,i;

int*p;

intm=0;

ints=0;

chara[10];//輸入一個字元串到a[6]

printf("請輸入一個字元串 ");

scanf("%s",a);//輸入字元串

for(i=0;i<10;i++)//計算a[6]中的數字個數

{

if(a[i]>='0'&&a[i]<='9')

m++;

}

if(m==0)

printf("字元串中沒有數字 ");

p=(int*)calloc(m,sizeof(int));//動態數組

for(i=0;i<10;i++)

{

if(a[i]>='0'&&a[i]<='9')

{

*(p+s)=a[i]-48;

s++;

}

}

//組成新的整數

for(t=0;t<m;t++)

{

z+=(*(p+t))*pow(10,m-(t+1));//組成新的整數

}

printf("新組成整數:%d ",z);

free(p);

}

kuo

(10)c語言從字元串中提取數字擴展閱讀

C語言實現將字元串的數字提取為整數

#include<stdio.h>

intStringToInteger(char*p)

{

intvalue=0;

while(*p!='')

{

if((*p>='0')&&(*p<='9'))

{

value=value*10+*p-'0';

}

p++;

}

returnvalue;

}

intmain(void)

{

char*str="112.123.156.1";

intval=0;

val=StringToInteger(str);

printf("value=%d ",val);

getchar();

return0;

}

熱點內容
艾密碼是多少 發布:2024-04-16 13:50:32 瀏覽:836
交換機都配置什麼 發布:2024-04-16 13:45:36 瀏覽:48
赫子哥我的世界伺服器整蠱 發布:2024-04-16 13:42:45 瀏覽:234
pythonsettodict 發布:2024-04-16 13:37:52 瀏覽:442
c語言文件讀操作 發布:2024-04-16 13:33:33 瀏覽:565
福利吧源碼 發布:2024-04-16 13:33:22 瀏覽:738
汽車按揭怎麼解壓 發布:2024-04-16 13:19:20 瀏覽:406
泰囧ftp 發布:2024-04-16 13:14:45 瀏覽:736
用了vpn怎麼上外網訪問 發布:2024-04-16 13:14:10 瀏覽:974
安卓微信在哪裡設置鬧鍾 發布:2024-04-16 13:12:34 瀏覽:730