c++中如何将字符串类似于s="1 2 3 4 5 6 7 8 9"转换成整型数组a={1,2,3,4,5,6,7,8,9,}
3个回答
2014-04-07
展开全部
http://msdn.microsoft.com/zh-cn/library/kxsfc1ab.aspx
char *字符串, *停止字符串;
字符串 = "3.1415926这停止了";
double 浮点数 = strtod(字符串, &停止字符串);
printf("strtod函数 = %f\n", 浮点数);
printf("扫描: %s\n", 停止字符串);
字符串 = "1415926";
int 整数 = strtod(字符串, &停止字符串);
printf("strtod函数 = %d\n", 整数);
字符串 = "-10110134932这停止了";
long 有符号 = strtol(字符串, &停止字符串, 10);
printf("strtol函数 = %ld\n", 有符号);
for (int 基础 = 2; 基础 <= 8; 基础 *= 2)
{
unsigned long 无符号长整型 = strtoul(字符串, &停止字符串, 基础);
printf("strtol函数 = %ld (基础 %d)\n", 无符号长整型, 基础);
printf("扫描: %s\n", 停止字符串);
}
char *字符串, *停止字符串;
字符串 = "3.1415926这停止了";
double 浮点数 = strtod(字符串, &停止字符串);
printf("strtod函数 = %f\n", 浮点数);
printf("扫描: %s\n", 停止字符串);
字符串 = "1415926";
int 整数 = strtod(字符串, &停止字符串);
printf("strtod函数 = %d\n", 整数);
字符串 = "-10110134932这停止了";
long 有符号 = strtol(字符串, &停止字符串, 10);
printf("strtol函数 = %ld\n", 有符号);
for (int 基础 = 2; 基础 <= 8; 基础 *= 2)
{
unsigned long 无符号长整型 = strtoul(字符串, &停止字符串, 基础);
printf("strtol函数 = %ld (基础 %d)\n", 无符号长整型, 基础);
printf("扫描: %s\n", 停止字符串);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{
int a[100], j = 0;
string s = "1 2 3 4 5 6 7 8 9";
for(int i = 0; i < s.size();)
{
a[j] = s[i] - '0';
j++;
i = i + 2; //字符串中以空格作为间隔
}
for(int i = 0; i < j; i++) //j 即是整型数组的长度
cout << a[i] << endl;
system("pause");
return 0;
}
追问
请问如果数字为数不固定呢,比如是“1 11 123 23”类似这样的呢额
追答
int main()
{
int a[100], j = 0, tmp;
string s = "1 2 333 4 5 6 21347 8 9";
for(int i = 0; i < s.size();)
{
tmp = 0;
while(' ' != s[i])
{
tmp = tmp * 10 + (s[i] - '0');
i++;
if(i == s.size())
break;
}
a[j] = tmp;
j++;
i++;
}
for(int i = 0; i < j; i++)
cout << a[i] << endl;
system("pause");
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i = 0; i != 9; ++i) {
i[i] = s[i] - '0';
}
i[i] = s[i] - '0';
}
更多追问追答
追问
请问您这个i是int型数组,s是string类型数组是吧,可是为什么在vc2008上运行不成功呢,编译可以,但是不能运行
追答
对,怎么不能运行?你把你的代码发过来吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询