一、输入带空格的字符串
(1)gets(char *str)
需要包含头文件#include
(2)scanf("%[^\n]]",str)
需要包含头文件#include
(3)getline(cin,string str)
需要包含头文件#include
为char*,在C++中string封装了字符串的操作,总结一下,把string转化为字符数组或指针有一下三种方式:
(a)c_str()
string str="hi,girls!";
char *p=str.c_str();
(b)data()
string str="hello";
char *p=str.data();
(c)copy(p,len,start)
string str="howareyou";
char pStr[40];
str.copy(pStr,7,0); //7代表复制几个字符,0代表复制的位置
*(pStr+7)='\0'; //这里要手动加上结束符
(4)cin.getline(char *str, int maxnum)
需要包含头文件#include
二、将字符串转为数字
1、字符串转数字:使用sscanf()函数
char str[]="1234321";
int a;
sscanf(str,"%d",&a);
.............
char str[]="123.321";
double a;
sscanf(str,"%lf",&a);
.............
char str[]="AF";
int a;
sscanf(str,"%x",&a); //16进制转换成10进制
2、利用一个循环将数字提取
三、其余字符串函数
If c is an uppercase letter, returns its lowercase equivalent; otherwise returns c unchanged.如果 c 大写字母,返回其小写字母形式,否则直接返回 c。
If c is a lowercase letter, returns its uppercase equivalent; otherwise returns c unchanged.如果 c 是小写字母,则返回其大写字母形式,否则直接返回 c。
将str_ca添加到s的结尾,返回s;
将ca的前n个字符添加到s的结尾,返回s;
将ch的n份拷贝添加到s的结尾,返回s;
将str的拷贝插入到s的pos位置,返回s;
将str中从pos2位置开始的n个字符插入到s的pos1位置,返回s;【如果n大于str的长度,不会有问题,没有溢出错误,只会复制到str的末尾】
将ca的前n个字符插入到s的pos位置,如果n被省略,则插入ca中所有的字符到pos位置,返回s;
将字符ch的n个拷贝插入到s的pos位置,返回s;
删除s中从pos开始的n个字符(默认pos为0),返回s;
将s中pos1位置开始的长度为n1的字符串替换为str【如果n1太大,从pos到s结尾的所有字符将被替换】,返回s;
和上面一样,只不过取ca的前n2个字符,返回s;
交换s和str的内容分,返回为void;
返回s中第一个大于等于pos的位置,并且从这个位置的下一个字符开始s中字符和str_ca_ch中相应字符匹配。如果没有这样的位置则返回npos,pos默认为0
对网上字符串操作的总结感谢原文作者取自http://blog.csdn.net/zhanh1218/article/details/33306481
http://blog.csdn.net/zhouwei1221q/article/details/44887899