c++中如何依次读取一个string中的所有元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中如何依次读取一个string中的所有元素?相关的知识,希望对你有一定的参考价值。
比如abcdefg
依次读取char a='a' ,b='b' ............
eg:
string str = "abcdefg";
//str[0] == 'a'本回答被提问者采纳 参考技术B /*一次读入数组a中*/
#include"stdio.h"
void main()
int i=0;
char *p="abcdef",a[10];
for(;*p!='\0';p++)
a[i]=*p;
i++;
参考技术C #include <iostream>
using namespace std;
main()
char *str="abcdefg";
char a,b,c,d,e,f,g;
a=*str;
b=*(str+1);
c=*(str+2);
d=*(str+3);
e=*(str+4);
f=*(str+5);
g=*(str+6);
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<endl;
参考技术D string s1;
char buf[1024];
strcpy(buf,s1.c_str());
大概吧
如何清除向量中的所有元素,除了C++中向量中的最后一个元素
【中文标题】如何清除向量中的所有元素,除了C++中向量中的最后一个元素【英文标题】:How to clear all elements in a vector except for the last one in a vector in c++ 【发布时间】:2021-09-06 14:49:43 【问题描述】:正如标题所说,我有一个包含 11 个整数元素的向量,范围从 1 到 11。我正在尝试使用 .erase() 函数清除向量中除最后一个之外的所有元素。我无法使用迭代器来执行此操作,因为它们清除了除第一个元素之外的所有元素。我尝试了很多来自互联网的解决方案,例如使用 .rbegin() 和 .rend() 但他们只是给了我一个错误。
下面是我的代码:-
#include <vector>
#include <iostream>
using namespace std;
vector<int> epos = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11;
vector<int>::iterator it1, it2;
int main()
it1 = epos.begin();
it2 = epos.end();
epos.erase(it1, it2);
for (int i=0; i<=epos.size(); i++)
cout << epos[i] << ' ';
return 0;
我仍然是 C++ 的初学者,如果有任何帮助,我将不胜感激!
【问题讨论】:
【参考方案1】:你快到了,使用这个语法:
// make sure we end up with a vector with one element in it.
// empty lists will stay empty
if(epos.size()>1)
epos.erase(epos.begin(), epos.end() - 1);
你知道你也可以像这样迭代容器吗?
for (auto v : epos)
cout << v << ' ';
它被称为基于范围的 for 循环,可以防止您在使用索引时出错
【讨论】:
以上是关于c++中如何依次读取一个string中的所有元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查向量的所有元素是不是在 Eigen c++ 中的另一个向量中?