1.将 char * 转 int类型,用
int atoi(const char *str)函数
char *numstr = "12";
int val = atoi(numstr);
2.字符串分片,主要用到
头文件:stdlib.h stdio.h
char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。
char str[50];
cout << "Please input: year,month,day,hour,min,sec" << endl;
cin >> str;
char* taken;
const char* d = ","; //以,为分割符
int val=0;
taken = strtok(str, d);
while (taken != NULL) {
val = atoi(taken); //将字符串转化为int类型
printf("%d\n", val);
taken = strtok(NULL, d);
}
3. 字符串叠加,string类型的字符串可以直接用“+”运算符
#include <string>
string str1="good=";
string str2="nice";
string str3;
str3 = str1 + str2;
cout << "str3 = " << str3 << endl;
/*
输出结果为:
good=nice
*/
4.C++中有两种方式处理字符串
- 一种是:从C语言中继承来的,用字符数组存放字符串,每个字符占一个字节,以‘\0’结尾。当字符串长度不确定时,需要用new动态创建字符数组,最后要用delete 释放,很繁琐。如果字符串实际长度大于为它分配的空间时,会产生数组下标越界的错误
- 另一种是:C++中的string类来处理字符串,要包含 #include<string>头文件
5.输入整行字符串
1. cin 用法有缺陷: 从键盘输入数据时,是自动以空格为分隔符的。但是我们希望输入的字符串中是包括空格的,那么用cin就完成不了这个任务了。
2.getline函数,可以输入整行字符串,其中也可以包括空格
用法:getline(cin, s2) //第一个参数:cin表示从键盘输入,第二个s2表示字符串对象
getline(cin, s2, ';') //第一个参数:cin表示从键盘输入,第二个s2表示字符串对象, 第三个参数是结束标识符
6.取出字符串的其中一段
string s("12345678abcd");
string a=s.substr(0,6); //获得字符串s中从第0位开始的长度为6的字符串
cout << a << endl;