HCY Blog

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