若查找成功,返回按查找规则找到的第一个字符或子串的位置;若查找失败,返回npos,即-1(打印出来为4294967295)。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str="hello world llo";
int n=str.find("llo");
cout<<n<<endl;//返回llo在str中第一次出现的位置下标
int pos=str.find("llo", 3);//从下标为3的地方开始匹配
cout<<pos;
return 0;
}
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
int main(){
char str[16];
strcpy(str, "hello");
//可以将char数组直接赋值给string
string str1 = str; cout<<str1<<endl;
//通过构造函数赋值string
string str2(str); cout<<str2<<endl;
//string转成char数组
const char *str3 = str1.c_str();
printf("%s\n", str3);
return 0;
}
读取一行字符串(中间可能有空格)
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main(){
int n;
while (scanf("%d", &n)!=EOF){
cin.get(); //scanf不读入换行,用cin.get()读入 。如果没有scanf,就可以直接cin.getline
char str[64];
while (n--){
cin.getline(str, 64);
cout<<str<<endl;
}
}
return 0;
}