1、string*\string\char\char的转换关系
char可直接转换为string:
char* b=“adfa”;
string a=b;
char* c=a.c_str();
2、string和其他类型的转换
(https://www.cnblogs.com/lyf-sunicey/p/8679183.html这篇文章写的更好,他直接列了个表)
(1)int:
int转换为string
(2)string/char转换为int类型
将string类型转为int类型需要进行:
1、首先将 字符串string 转为 C语言中的 const char* 类型(使用 _c.str()函数)
2、将 const char* 转为 int 类型(使用atoi(const char *)函数)
int num == atoi( nums.c_str())
(3)string/char转换为double类型
将string类型转为int类型需要进行:
1、首先将 字符串string 转为 C语言中的 const char* 类型(使用 _c.str()函数)
2、将 const char* 转为 double 类型(使用atof(const char *)函数)
double num == atof( nums.c_str())
3、从string中截取一部分
(1)返回子串出现在母串中的首次出现的位置,和最后一次出现的位置:
char* flag = "c";
int position = s.find_first_of(flag);
printf("s.find_first_of(flag) is :%d\n",position);
int position = s.find_last_of(flag);
printf("s.find_last_of(flag) is :%d\n",position);
(2)在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 ‘\0’:
char *strstr(const char *haystack, const char *needle)
参数
haystack – 要被检索的 C 字符串。
needle – 在 haystack 字符串内要搜索的小字符串。
返回值
该函数返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。
eg:#include <stdio.h>
#include <string.h>
int main()
{
const char haystack[20] = “RUNOOB”;
const char needle[10] = “NOOB”;
char *ret;
ret = strstr(haystack, needle);
printf(“子字符串是: %s\n”, ret);
return(0);}
(3)从字符串中截取字符:
str=substring(int startIndex);截取掉str从首字母起长度为startIndex的字符串,将剩余字符串赋值给str;
str2=substring(string str1, int startIndex,int endIndex);截取str1中从startIndex开始至endIndex结束时的字符串,并将其赋值给str2;
eg:
string haystack = "12345.000";
char* flag = ".000";
int position = haystack.find_first_of(flag);
string str=substr(haystack,0,position);
返回值是12345