c++中字符串数组转化成int型数组

比如说一个字符串数组a[3]={"123","333","222"},怎么让他成为一个int型的数组,好能让我用123,333,222这几个数字能用作其他事情,比如说大小比较。。。

字符串数组,里面需要存储的是合法的整型变量的形式,如“1234”这样的,才有可能转换为int型数组。

转换时,可以使用sscanf函数来实现。

代码如下:

void convert_string_to_int(string *s, int *a, int len)
{
    int i;
    for(i = 0; i < len; i ++)
        sscanf(s[i].c_str(), "%d", a+i);//将string中的第i个元素,按照%d(整型)的格式转换成整型数据,并存到a的第i个元素中。
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
简单
char s[] = "123";
int n = atoi(s);
接下来你知道了追问

问题的关键在于我不知道字符串数组a[]的具体值,这样你的这种方法就行不通了啊。。。

追答

我不知道字符串数组a[]的具体值??什么意思

追问

我要做的是模拟路由器的一个程序,a[]的值要根据输入的IP地址来定。。。

追答

你的意思是,你获取到的结果类似这样 char a[4][3] = { "127","0","0","1" }怎么把它变成这样
int b[4] = { 127,0,0,1 }; 如果是这样,那就用一个循环。
如果说,你想把 "127.0.0.1" 变成ip地址参数,那就是inet_addr("127.0.0.1");

本回答被提问者采纳
第2个回答  2013-01-12
#include <stdio.h>
#include <stdlib.h>
#define SIZE 3
void getResult(int d[],char* list[],int length){
int i=0;
while(i<length){
d[i]=atoi(list[i]);
i++;
}
}
void main(){
char* val[SIZE]={"123","333","222"};
int b[SIZE];
getResult(b,val,SIZE);
for(int i=0;i<SIZE;i++){
printf("%d\n",b[i]);
}
getchar();
}
第3个回答  2013-01-08
看你要做路由器的东西,这写东西有库函数的
比如htons之类的
相似回答