版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我们立即下架或删除。
简介:字符输⼊输出
putchar
• int putchar(int c);
• 向标准输出写⼀个字符
• 返回写了⼏个字符, EOF( -1)表⽰写失败
getchar
• int getchar(void);
• 从标准输⼊读⼊⼀个字符
• 返回类型是 int是为了返回 EOF( -1)
• Windows—>Ctrl-Z
• Unix—>Ctrl-D
标准库中的字符串函数
string.h
• strlen
• strcmp
• strcpy
• strcat
• strchr
• strstr
strlen
• size_t strlen(const char *s);
• 返回 s的字符串⻓度(不包括结尾的 0)
strcmp
• int strcmp(const char *s1, const char *s2);
• ⽐较两个字符串,返回:
• 0:s1==s2
• >0:s1>s2
• <0:s1strcpy
• 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);
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, size_t n);
字符串中找字符
• char * strchr(const char *s, int c);
• char * strrchr(const char *s, int c);
• 返回 NULL表⽰没有找到
• 如何寻找第 2个?
字符串中找字符串
• char * strstr(const char *s1, const char *s2);
• char * strcasestr(const char *s1, const char *s2); 更多>>