C语言题目:提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。

作者&投稿:桐菲 (若有异议请与网页底部的电邮联系)
C语言题目:提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。~

评测·系统显示的是wrong answer吗?如果是PE,请修改输出格式。
这里我指出一种情况,就是比如我输入a0123a 这组字符串,那按照题目的要求应该输出的是123,而你输出的肯定是0123。我不知道这是不是你不通过的测试用例,我也没有你测试平台的地址,没办法验证,就当是我给你一点建议吧。

#include
#include
#include
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

扩展资料
C语言实现将字符串的数字提取为整数

#include

intStringToInteger(char*p)
{
intvalue=0;
while(*p!='\0')
{
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;
}

#include<stdio.h>
#include<string.h>
int main()
{
    char s[20];
    int i;
    printf("输入包含数字的字符串:");
    scanf("%s",s);
    printf("其中整型数字位为:");
    for(i=0;i<strlen(s);i++)
    {
        if(s[i]>=48 && s[i]<=57)
        {
            printf("%d",(int)s[i]-48);
        }
    }
    return 0;
}



C语言中怎样从一串数字中提取一个数?
可以先把这个数字改成一个字符串,然后再把你要的第几个数字提出来即可,如:\\x0d\\x0ainti=12345;\\x0d\\x0acharch[10];\\x0d\\x0asprintf(ch,"%d",i);\/\/把i输出到字符串(和printf用法一样)\\x0d\\x0aprintf("%c\\n",ch[2]);\/\/输出这个字符串的第3个字符(下标是2)\\x0d\\x0a就会...

C语言怎样提取一个数的十位个位百位千位?
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n\/1%10,n\/10%10,n\/100%10,n\/1000%10 代码如下:include<stdio.h> int main(){ int n = 123456;int unitPlace = n \/ 1 % 10;int tenPlace = n \/ 10 % 10;int hundredPlace = n \/ 100 % 10;int thousandPl...

C语言怎样提取一个数的十位个位百位千位
个位:x%10;十位:x\/10%10;百位:x\/100%10;千位:x\/1000%10。C语言有以下几种取整方法:1、直接赋值给整数变量。如:int i = 2.5; 或 i = (int) 2.5;这种方法采用的是舍去小数部分,可以用于你的问题。2、C\/C++中的整数除法运算符"\/"本身就有取整功能(int \/ int),而下面介绍的取...

C语言问题:给定一个任意字符串,提取出其中所包含的整数。
查找字符串中的数字并返回其个数:include <stdio.h>int main(void){char str[1000];int i, count, a[100];int p, q, r;int tmp;gets(str);r = 0;count = 0;while(1){while(str[r] && (str[r]<'0' || str[r]>'9'))r++;\/\/跳过非数字 if(str[r]){p = r;\/\/p指向...

C语言怎样提取一个数的十位个位百位千位?
假设那么数为x,不知道是多少位的.你可以使用下面的表达式个位:x%10十位:x\/10%10百位:x\/100%10千位:x\/1000%10

C语言题,提取英文句子的单词并排序输出。
说明:原题目中的const要删除,否则过不了编译。因为const了就不能排序了……include <stdio.h>#include "string.h"int GetWords(char *sentence, char *words[]);void SortStrings(char *strs[], int count);\/\/const int main(int argc,char *argv[]){ char str[200]; int nWords...

C语言中如何提取出一个字节的八位各自的状态?
简单写一下:位域用楼上的写法就行 union { _aaa testBit;unsigned char ucTestByte;} P1;首先把字节整体赋值,比如0xAA。P1.ucTestByte = 0xAA;则可直接使用各Bit进行判断,如:if ( P1.testBit.a1 == 0 ) { ...;} 当然也可以直接对某一位赋值,如:P1.testBit.a1 = 0;则P1.uc...

C语言 将一个字符串中的单词提取到另一个数组中。并显示数量
strcpy的两个参数都要是一维数组的形式,你给的两个参数一个是一维char数组,一个是char,两个类型不匹配,所以出错。给你写了个参考 include<stdio.h>#include<string.h>#define N 1000#define M 1000int main(){ char a[N], b[M][N], temp[N]; int n,num=0,i,word=0; g...

C语言 题目:从一个正整数a中把从右端开始的4~7位取出来。
题目1:有2种方法,一是数值运算,二是转成字符串截取 至于题2位移,用方法2字符串都截取了,和原字符串重组一下就好了,我就不写了。include <stdio.h> #include <string.h> int getRByNum(int a,int w);\/\/从a右边开始取w位数,返回整数 int getRByString(int a,int w); int main()...

C语言 哪位帮我改一下程序,题目要求提取第一个文本中第一个空格前的字 ...
\/\/读一行a,将第一个空格前复制到b { p=a;q=b;m=strlen(a);while(*p){ *q++=*p++;if(*p==32) break;} q='\\0';\/\/读一行A,同时读一行x,将x第一个逗号前复制到y while(fgets(x,sizeof(x),fp)!=NULL){n=strlen(x);s=x;t=y;while(*s){ *t++=*s++;if(*s==...

覃塘区19253495177: 用c语言编写一个函数,提取一个字符串中的所有整数. -
脂金小儿: #include#includemain(){ int i,j=0,k; char a[1000];//长度自己根据实际情况调整 printf("请输入一串字符串:\n"); gets(a); k=strlen(a); for(i=0;i

覃塘区19253495177: C语言提取字符串中的所有数字 -
脂金小儿: #include<stdio.h> void main() {char str[10]={'1','a','2','b','3','4','c','\0'};int i;for(i=0;str[i]!='\0';i++)if(str[i]>'0'&&str[i]<'9')printf("%c\n",str[i]); }方法:从字符串第一个字符开始判断,通过for循环一个个的如果是当前字符,也就是str[i]比0大而且比...

覃塘区19253495177: C语言如何把一个字符串中的数值全提取出放在一个数组里面 -
脂金小儿: 用 sscanf() ; 例如:char str[80]="1101"; int a[4]; sscanf(str,"%1d%1d%1d%1d",&a[0],&a[1],&a[2],&a[3]);

覃塘区19253495177: C语言中怎么提取一个字符串从第3个字母开始的其余的字符并保存到另一个字符串中 -
脂金小儿: 展开全部 首先你这种定义字符串的方式是错误的 应该这样定义 char *x="abcdefg",这样定义就是定义了一个字符串变量, 而你的定义char x 只是定义x为字符变量,在赋值的时候只能赋给x单个字符,如x='a', 要搞清楚 字符 和 字符串 的概念 至于你说的提取字符,可如下方法 for(i=0; i{y[i]=x[i+3]; } 这样就可以了,就是简单的循环语句赋值,把x[]数组第三个字符'd'(第0个字符时'a'),付给数组y[0].

覃塘区19253495177: 用c语言提取字符串中的数字 -
脂金小儿: 这个就是不用指针的.. 直接利用字符数组的下标来遍历.稍微做了些修改. 你看看#include <stdio.h> void main() { char str[50]; int i=0; //i是数组下标. gets(str); //输入字符串.while(str[i]) //当数组元素不是字符串结束符时.执行while { if(str[i]>='0'&&str[i]<...

覃塘区19253495177: C语言如何取一串字符串中的某个字符 -
脂金小儿: C中的字符串就是一个字符数组. 如: char s[10]="wo shi SB"; char c; 取最左边的字符,就是c=s[0];

覃塘区19253495177: 请大神帮忙看一个C语言程序,是实现提取一个字符串中所有数字的,有几行看不懂 -
脂金小儿: 提取个数字写这么复杂!digit=*(pstr+i-1)-48; // pstr是字符串的指针, +i-1表示这个指针向右移到i-1个字符,*是表示取这个字符,也就是一个char类型的值,char类型实际上是一个byte变量,其取值范围是0-255.也就是说在这个字符串中取(pstr+i-1)处的一个字符,这个字符的ASCII编码值-48 就是digit的值.后面的问题太基础了,你自己去看看c++ primrary

覃塘区19253495177: 急求C语言程序:求一个字符串中所有的数字字符对应的数值之和. -
脂金小儿: #include long numcharsum(const char *s) int main(void) { char s[100]; printf("input a string: "); scanf("%s", s); printf("%ld", numcharsum(s)); } long numcharsum(const char *s) { long sum = 0; while(*s) { if (*s >= 48 && *ssum += *s - 48; s++; } return sum; }

覃塘区19253495177: 用C语言写一个提取一个字符串中全是大写字母单词的函数?请高手指教,不胜感激. -
脂金小儿: #include int get(char* p) { int count = 0; while(*p!='\0')//循环到字符串结束标志是停止 { p++; count++; } return count; } int main() { char *p = "asdfgasdfghjjklkjhh";//C风格的字符串在末尾默认加了一个'\0'作为字符串结束的标志 int num = get(p); printf("字符串【%s】的长度为【%d】\n",p,num); return 0; }

覃塘区19253495177: C语言编写一个程序从特定的文件中提取特定的字符串. -
脂金小儿: 按你追问的要求改了一下.这段代码能把键盘输入的特定字符串后面双引号内的文字提取出来存入XYZ.txt文件中.在提取过程中滤除了源文件中的'\n'和' '.供参考…… #include "stdio.h"// #include "string.h"// #include "stdlib.h"// void main(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网