如何在C ++中获取字符串的一部分?我想知道从0到i的元素是什么。
答案 0 :(得分:15)
您想使用std::string::substr
。这是一个例子,从http://www.cplusplus.com/reference/string/string/substr/
// string::substr
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str="We think in generalities, but we live in details.";
// quoting Alfred N. Whitehead
string str2, str3;
size_t pos;
str2 = str.substr (12,12); // "generalities"
pos = str.find("live"); // position of "live" in str
str3 = str.substr (pos); // get from "live" to the end
cout << str2 << ' ' << str3 << endl;
return 0;
}
答案 1 :(得分:2)
您使用substr
,记录here:
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string a;
cout << "Enter string (5 characters or more): ";
cin >> a;
if (a.size() < 5)
cout << "Too short" << endl;
else
cout << "First 5 chars are [" << a.substr(0,5) << "]" << endl;
return 0;
}
您还可以使用c_str
将其视为C风格的字符串(不可修改),记录为here。
答案 2 :(得分:1)
如果你的意思是字符串是一个字符数组,
char str[20];
int i;
strcpy(str,"Your String");
//Now lets get the substr
cin>>i;
// do some out-of-bounds validation here if u want..
str[i+1]=0;
cout<<str;
如果你的意思是std::string
使用substr函数..正如将建议
答案 3 :(得分:1)
假设您正在使用C ++ std::string
类
你可以这样做:
std::string::size_type start = 0;
std::string::size_type length = 1; //don't use int. Use size type for portability!
std::string myStr = "hello";
std::string sub = myStr.substr(start,length);
std::cout << sub; //should print h
答案 4 :(得分:0)
使用:
std::string sub_of_s(s.begin(), s.begin()+i);
创建一个字符串sub_of_s
,它是i-th
中元素的第一个s
。