C/C++分割字符串需要自己实现,秋招笔试被处理输入的字符串耽误了几次。。。
#include <iostream>
#include <string.h>
#include <vector>
#include "stdio.h"
using namespace std;
int main ()
{
string s;
int n;
cin>>n;//输入二维数组的行数;
vector<vector<int> > arr;
while(n--){
string s;//每一行以字符串格式接收输入;
cin>>s;
vector<int>nums;
char *str = (char *)s.c_str();//string 转 char
const char *split = ",";
char *p = strtok (str,split);//用split符号分隔依次取出
while(p != NULL) {
int a;
sscanf(p, "%d", &a);//char转 int
nums.push_back(a);
p = strtok(NULL,split);
}
arr.push_back(nums);
}
//打印二维数组
for (int i=0; i<arr.size(); i++) {
for(int j = 0; j<arr[0].size(); j++)
cout<<arr[i][j]<<" ";
cout<<endl;
}
return 0;
}
警告:一定注意,假如split=“,”这里写的是英文逗号,输入时一定不能输入中文逗号,否则无法得到想要的结果。