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类型的主要内容,如果未能解决你的问题,请参考以下文章