Char 数组像string一样有很多函数or操作
1-1 sscanf和sprintf函数,面向字符串的输入输出流
在我看来就是从字符串中输入数据,而不是像scanf从键盘键入数据
虽然很少用到, 但是书到用时方恨少! believe me
1-1-1 sscanf函数
sscanf 读取格式化的字符串中的数据–百度百科
TA常用来字符串和数字的转换,很好使,不用自己系一大堆代码了。Orz。。。
1 | int main(){ |
Output:
1 | 0 |
这个函数中间参数有很多,什么转化为16进制,8进制之类的.
(上面代码有标号) 1号行代码:ss是一个字符串,然后”%s”意思是转化为字符串,然后赋给ss1,作用就是 ‘=’ 。如果中间使”%d”,那么就会起到字符串转化数字的作用了,实例中得到整数123,赋给ss1,ss1是char类型,”{“的ASCII码是123,所以字符串ss1就是单个字符”{“.
2号行代码:”%8s”中间的数字8表示从头开始,一共取8个字符。
3号行代码:”%[^(]”表示读到’(’结束,注意里面不要乱打空格,%[^ ]表示到空格结束,读不进空格。
4号行代码:”%[^a-z]”表示读到小写字母就结束,小写字母读不进。
“^”符号表示到什么符号停止,大概就是非的意思。”%[]”这玩意貌似叫字符集
5号行代码:%[a-z,A-Z,0-9]意思是读小写,大写字母,数字0-9,后面加个”,”还可以继续加可读入符号。
1-1-2 sprintf函数
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中–百度百科
主要作用与sscanf相反,是将数字转变成字符串,代码:
1 | sprintf(ss1,"%d",123); |
Output:
1 | 123 |
1-2 以atoi函数为代表的一系列函数,C标准库函数
1-2-1 atoi()函数,ascii to integer
作用是将字符串转化为整型数,未执行有效转换则返回0,比喻说字符串中全是字母时。
1 | char ss4[100]="1234asdf"; |
1 | 1234 |
1-2-2 atof()函数,。。。to f 浮点数
1 | char ss4[100]="1234.1234"; |
1 | 1234.123400 |
用到的时候就很6, 学了很鸡肋…
1-2-3 atol()函数 ,长整型
1 | char ss3[100]="-2147483648"; |
这个函数我试着有点问题,超出int范围之后,返回的数就很哲学.
1-3 tolower() and toupper()
1 | char c='C'; |
tolower转换成小写字母,toupper转换成大写字母,括号中的参数应该是一个int型数,(字符c自动转化成ascii码)