十二、字符串(2)——字符串函数
1、单字符输入输出,用 putchar 和 getchar
int putchar(int c); //向标准输出写一个字符 //返回写了几个字符,EOF(-1)表示写失败
int getchar(void); //从标准输入读入一个字符 //返回类型是int是为了返回EOF(-1); //Windows ——> Ctrl-Z //Unix ——> Ctrl-D
标准库中的字符函数
#include<string.h>
strlen、strcmp、strcpy、strcat、strchr、strstr
2、字符串函数strlen
size_t strlen(const char*s) //返回s的字符串长度(不包括结尾的0)
3、字符串函数strcmp
int strcmp(const char *s1,const char *s2); //比较两个字符串,返回: // 0 :s1==s2 // >0 : s1> s2 // <0 : s1< s2
4、字符串函数strcpy
char *strcpy( char *restrict dst, const char *restrict src); //把src的字符串拷贝到dst //restrict 表明 src 和 dst 不重叠(C99) //返回dst //为了能链起代码来
char *dst = (char*) malloc (strlen(src)+1); strcpy(dst,src);
5、字符串函数strcat
char *strcat(char *restrict s1, const char *restrict s2); //把s2拷贝到s1的后面,接成一个长的字符串 //返回s1 //s1必须具有足够的空间
安全问题
strcpy和strcat都可能出现安全问题
——如果目的地没有足够的空间?
安全版本
char* strncpy(char *restrict dst, const char *restrict src, size_t n); char* strncat(char *restrict s1, const char *restrict s2, size_t n); int strncmp(const char* s1, const char* s2 , siz e_t n);
6、字符串搜索函数
字符串中找字符
char* strchr(const char* s, int c); char* strchr(const char* s, int c); //返回NULL表示没有找到
如何寻找第2个
字符串中找字符串