各种字符串处理
作者:
牧濑红莉栖
,
2022-09-18 11:42:50
,
所有人可见
,
阅读 241
整行读入string, getline(cin, string)
整行读入char[]
1.cin.getline(char[], length)
2.fgets(char[], length, stdin)
3.scanf("%[^\n]", &s); => [] 表示读入字符串集合, ^\n 除了回车以外的所有字符
将int转化为string:
1.to_string(int)
2.使用stringstream ssin, ssin << int, string s = ssin.str()
将int转化为char[]:
sprintf(char[], "%d", int);
将string转化为int / 将char[]转化为int
1.int a = stoi(s);
2.int a = atoi(string.c_str()) => c_str() 返回一个string的第一个字符地址(char *)
3.stringstream ssin(string) , ssin >> int
将char[]中截取一段转化为int:
char s[len];
strncpy(s, a, length); //将a中截取length复制到s中
s[length] = '\0'
int d = atoi(s) //转化为int, 会自动忽略前导零
sscanf 用法(从char[]中读取int):
string s = "02-12" 如果要从s中读取 02 和 12 , 并且要转化为int类型的话,
sscanf(s.c_str(), "%d-%d", &a, &b) => 从s字符串中格式化读入(需要传入char *)
char 与 string 之间的转换:
char -> string , 直接赋值
string -> char: 需要用 c_str() 函数