单字符输入输出
putchar
- int putchar(int c);
- 向标准输出一个字符
- 返回写了几个字符,EOF(-1)表示写失败
getchar
- int getchar(void);
- 从标准输入读入一个字符
- 返回类型是int是为了返回EOF(-1)
#include<stdio.h>
int main()
{
int ch;
while((ch=getchar())!=EOF){
putchar(ch);
}
return 0;
}
#include<string.h>
strlen
- size_t strlen(const char *s);
- 返回字符串s的长度(不包含‘\0’)
char line[]="Hello";
printf("strlen=%lu\n",strlen(line)); //5
printf("sizeof=%lu\n",sizeof(line)); //6
strcmp
- int strcmp(const char* s1,const char* s2);
- 比较两个字符串,返回:
0:s1==s2;
1:s1 > s2;
-1: s1 < s2;
#include<stdio.h>
#include<string.h>
int main(int argc, char const* argv[])
{
char s1[] = "abc";
char s2[] = "abc";
char s3[] = "Abc";
printf("%d\n", strcmp(s1, s2)); //0
printf("%d\n", strcmp(s1, s3)); //1
printf("%d\n", strcmp(s3, s1)); //-1
return 0;
}
strcpy
- char *strcpy(char *restrict dst,char *restrict src);
- 把src的字符串拷贝到dst
restrict表明src和dst不重叠(c99) - 返回dst
复制一个字符串
- char *dst=(char * )malloc(strlen(src)+1);
strcpr(dst,src);
strcat
- char* strcat(char *restrict s1,const char *restrict s2);
- 把s2接到s1后面,接成一个长的字符串
- 返回s1
- s1必须有足够的空间
安全版本
- char *strncpy(char *restrict dst,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).//从左边开始,输出第一个c的位置
- char *strrchr(const char *s,int c).//从右边开始,输出第一个c的位置
- 返回NULL表示没有找到