C语言如何把一个字符串转换成数字

如题所述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

char str[1000];
int* change(char *str)
{
int n,i,j;
int *number;
n = i = j = 0;
while (str[i])
{
for (; str[i] && str[i] == ' '; ++i); //找到数字的第一位
for (j = i + 1; str[j] && str[j] != ' '; ++j); //找到数字的后一位
i = j;
++n;
}
number = (int*) malloc( sizeof(int) * (n+1) );
//上面这一段用来分析一共有多少个数,以此分配空间
n = i = j = 0;
while (str[i])
{
for (; str[i] && str[i] == ' '; ++i);
for (j = i + 1; str[j] && str[j] != ' '; ++j);
number[++n] = atoi(str + i);
i = j;
}
number[0] = n;
return number;
}

int main()
{
gets(str);
int *p = change(str);
printf("%d\n", p[0]);
for (int i = 1; i <= p[0]; ++i) printf("%d\n", p[i]);
system("pause");
free(p);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-16
atoi  

C语言库函数名: atoi   功 能: 把字符串转换成整型数.   名字来源:array to integer 的缩写.   原型: int atoi(const char *nptr);   函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。
第2个回答  2011-07-16
应用强制转化
例如“char a='A';
int (a);

输出的a应该就是数字了
第3个回答  2011-07-16
应用强制转化
例如“char a='A';
int (a);

这样输出的是A的ascii码,值为97。
用atoi() 函数可以的
第4个回答  2011-07-16
char a[100];
int b[100];
for(i=0;i<100;i++)
b[i]=a[i]-'0';
这样就可以了