输出字符串
puts()
printf("%s",p);
获取字符串
scanf("%s",p)
gets ---------- char * gets ( char * str );
因为本函数可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值
断言
assert
拼接
strcat
---------- char *strcat(char *dest, const char *src);
把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。
比较
strcmp
----------- int strcmp(const char *s1,const char *s2);
若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数
strncmp
----------- int strncmp ( const char * str1, const char * str2, size_t n )
功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值。
查找子字符
strchr
----------char *strchr(const char *str, int c)
在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置
查找子串
strstr
---------- char *strstr(char *str1, const char *str2);
返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL
字符串分割
strtok
---------- char *strtok(char *str, const char *delim)
分解字符串 str 为一组字符串,delim 为分隔符
示例代码
特别要注意分割处理后原字符串 str 会变,原字符串的改动是切分符原位置均更改为 '\0'