方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型。
#include<stdio.h>
#include<string.h>
int main()
{
char a[15];//定义char类型
int x; //定义int整型
printf("请输入一个字符串: ");
gets(a);
printf("字符串为: %s\n",a);
x=atoi(a);//调用库中的atoi函数,将数据转为整型
printf("a的整型为: %d",x);
return 0;
}
从图二可知,这种方法具有一定的局限性,如果你是想仅为了提取这个字符串中的整型数据,例如,对于字符串"123abc"这样是可以直接提取出123的,但是对于"abc123",atoi函数在识别到非整型数据后会直接返回0,提取不到123,因此,我们可以先将"abc123"转换为"123",后将"123"利用atoi转为123就实现了。
方法二:
#include<stdio.h>
#include<string.h>
char Str_be_int(char *str,char *num)
{
int i=0,j=0;
int len = strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='0' && str[i]<='9')
{
num[j] = str[i];
j++;
}
}
}
int main()
{
char a[15],b[15];//定义char类型
int x; //定义int整型
printf("请输入一个字符串: ");
gets(a);
printf("字符串为: %s\n",a);
Str_be_int(a,b);
printf("%s\n",b);
x=atoi(b);//调用库中的atoi函数,将数据转为整型
printf("字符串的整型为: %d",x);
return 0;
}
思路:Str_be_int()函数提取出字符串"123",atoi()函数转化为整型。
如有不足,期待您的指正。