c语言中字符串的基础知识
c
本文介绍了C语言中字符串的基础知识,涵盖定义、输入输出及常用函数。读者可掌握字符数组与指针的定义方法、动态内存分配技巧以及多种输入输出方式,如scanf和fgets的使用。亮点包括处理整行输入和删除换行符的实用技巧,以及strcpy、strcat和strcmp等核心函数的应用,帮助提升字符串操作效率,避免常见错误。
目录
c语言中字符串的基础知识
经常忘记字符串相关的内容,作笔记整理如下。
定义
- 字符数组定义
char c[20]="Hello World!"; //可不用完
char s[20]; //不赋值
char cs[]="Hello, World!";
- 字符指针
char *s="Hello, World!"; //常量,不可变
- 动态分配
#include <stdlib.h>
char *str = (char*)malloc(100 * sizeof(char)); //需要free(str);定义中100可以换位变量
输入
- 读到空格前
scanf("%s",&s); //最为简单
- 读取整行
char sentence[100];
fgets(sentence, sizeof(sentence), stdin); // 读取整行,包含换行符
删去换行符:
if (str[strlen(str)-1]=='\n')
str[strlen(str)-1]='\0';
- scanf读整行
scanf("%[^\n]",s);
getchar(); //消耗这个换行符
scanf("%[^\n]%*c",s); //自动丢弃换行符,*表示不存储
输出
printf("%s",s); //没有换行
puts(s); //自带换行
其他函数
复制
strcpy(str1,str2); //将str2赋值给str1
拼接
strcat(str1,str2); //将str2接在str1末尾
比较
int cmp = strcmp(str1,str2); //逐个字符比较ASCLL码值,负数代表str1<str2,0代表str1=str2,正数代表str1>str2