文章目录
一、表示字符串和字符串I/O
1.在程序中定义字符串
1.字符串字面量(字符串常量)
用双引号括起来的内容称为字符串常量。
2.字符串数组和初始化
c99之后有着变长数组的概念,即char crumbs[n];
3.数组和指针
- 联系:1.两者都可以使用数组表示法。2. 两者都可以进行指针加法操作
- 区别:假设有下面两个声明:
char heart[] = "I love you!";
const char *head = "I love you!";
1.只有指针表示法可以进行递增操作。2.可以这样head = heart;,但是不能heart = head;。3.初始化数组把静态存储区的字符串拷贝在数组中,而初始化指针只把字符串的地址拷贝到指针。
二、字符串输入
- gets()函数
有着安全隐患,已经逐渐要被淘汰掉 - fgets()函数
会保留输入末尾的换行符作为字符串的一部分,要编写额外的代码,来将换行符替换成空字符。 - gets_s()函数
只从标准输入中读取字符,所以不需要第3个参数,如果读到换行符会将其丢弃,而不是存储。
鉴于此,fgets()通常是处理类似情况的最佳选择。 - scanf()函数
scanf()和gets()类似,也存在一些潜在的缺点。如果输入行的内容过长的话,scanf()也会导致数据溢出。不过,在%s转换说明中使用字段宽度可防止溢出。
三、字符串输出
- puts()函数
该函数遇到空字符时就停止输出,所以必须确保有空字符。 - fputs()函数
要注意puts()和gets()配套使用,fputs()和fgrts()配套使用。 - printf()函数
形式更为复杂,计算机执行时间也更长
四、自定义输出/输入函数
可以自定义一个满足自己需求的函数。
//put1.c
#include<stdio.h>
void put1(const char * string){
while(*string != '0')
putchar(*string++);
}
五、字符串函数
- strlen()函数:strlen()函数用于统计字符串的长度。
- strcat()函数:用于拼接两个字符串
- strncat()函数:该函数的第三个参数指定了最大添加字符数。如strncat(bugs,addon,13)
- strcmp()函数:用于字符串比较,其返回值有正、负和0,取决于字符串在ASCLL中的位置。
- strncmp()函数:可以只比较第三个参数指定的字符数。
- strcpy()函数:拷贝字符串
- strncpy()函数:第三个参数指定可拷贝的最大字符数。
- sprintf()函数:此函数声明在stdio.h中,而不是string.h
六、选择排序算法
利用选择排序算法来排序指针,具体做法是利用for循环依次把每个元素与首元素比较。如果待比较的元素在当前首元素的前面,则交换两者。重复这一过程直到倒数第二个元素为止。现在只剩下两个元素比较这两个元素,将较大的元素放在倒数第二的位置。这样,数组中最小元素就出现在最后的位置上。
八、命令行参数
- DOS或者UNIX都是使用命令行编译程序,因此在同一行中可以自己加参数。
- 集中开发环境中(IDE),可以使用可运行命令行的编译器,如GCC之类。
九、把字符串转换为数字
需要用的函数:
atoi();
strtol();
本文含有隐藏内容,请 开通VIP 后查看