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=“,”这里写的是英文逗号,输入时一定不能输入中文逗号,否则无法得到想要的结果。