问题描述:
假如有一行用空格隔开的字符串的话,如何提取出每一个字符串
比如输入
abc def ghi
然后我们又需要存下来每一个字符串的话,需要怎么做。
方法一:双指针算法。
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main() {
4 char str[1010];
5 cin.getline(str, 1010);
6 int len = strlen(str);
7 //cout << len << endl;
8 for (int i = 0; i < len; i++) {
9 int j = i;
10 //每一次i循环的时候,都保证i是指向单词的第一个位置
11 while (j < len && str[j] != ' ') { //只要j没有走到终点
12 //然后我们要找到当前这个单词的最后一个位置
13 j++;
14 }
15 //当while循环结束时,j就指向当前这个空格
16 //此时从i到j-1之间就是一个单词
17 //这道题的具体逻辑
18 for (int k = i; k < j; k++) {
19 cout << str[k];
20 }
21 cout << endl;
22 i = j;
23 //cout << j << endl;
24 }
25 return 0;
26 }
运行结果:
方法二:C+*+中的istringstream*
具体用法如下:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main() {
4 string str = "aa bb cc dd ee";
5 istringstream is(str); //创建istringstream对象is
6 //并同时使is和字符串str绑定
7 string s;
8 while (is >> s) { //将从str中读取到的字符串is写入到字符串s
9 cout << s << endl;
10 }
11 return 0;
12 }
运行结果:
适用于istringstream的具体题目https://www.cnblogs.com/fx1998/p/12730320.html
原文链接: https://www.cnblogs.com/fx1998/p/12868788.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/197202
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!