c语言中,如何将字符串数组中的52提取出来,并转换为int类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中,如何将字符串数组中的52提取出来,并转换为int类型相关的知识,希望对你有一定的参考价值。

char string[]="R52C05D";

谢谢了
我想把数组中的东西合并成字符串,请问该怎么操作呢

你的题目和文本好像不一样,两个都说一下吧

先说简单的,数组转成字符串只要用sprintf函数就可以了,在string.h中,用法和printf很类似,只要在前面加上你要生成的字符串指针就可以了

int sprintf ( char * str, const char * format, ... );

字符串转换成int,首先你要判断是不是数字,将数字提取到一个字符串中,别忘了\0

之后在stdlib.h中有一个库函数atoi()

int atoi ( const char * str );

把建立的字符数组传给这个函数就可以了.

此外新版C库中还有一个strtod函数可以做到这一点

long int strtol ( const char * str, char ** endptr, int base );

只要传开始指针就好,第二个指针是用来指示转换到什么地方停止的。
比如你的情况就可以这么传

char* close;
strtol(string[1],&close,10);

之后close应该指向C
参考技术A #include<stdio.h>
#include<string.h>
#define WRONG -1
int getnum(char*,char*);
int main()
char string[]="R52C05D",str[]="52";
int a = getnum(string,str);/*变量a用来存储查找并转化过来的 str */
printf("%d",a); /*如果a为-1,则说明string 中没有查到str*/
getch();
return 0;

int getnum(char *s,char *s1)

int len1=strlen(s),len2=strlen(s1),sum=0;
if(len2>len1)return(WRONG);
while(*s)

if(*s==*s1)

sum = sum*10+(*s1-'0');
s++;
s1++;
if(!*s1)return sum;
if(!*s)return WRONG;

else

if(sum)return WRONG;
s++;


return WRONG;
本回答被提问者采纳
参考技术B 能吗

以上是关于c语言中,如何将字符串数组中的52提取出来,并转换为int类型的主要内容,如果未能解决你的问题,请参考以下文章

c++ string int

在C语言中如何区分数组中的空格,并提取数组单个字符!求大神讲解!

输出一个随机字符串中的数字之和-Python

C语言怎么把字符串中的某一部分提取出来?

C语言中如何将一个数字的各个位上的数分别提取?

C语言中,如何将一个数组中的数值转换成字符串输出?