C初级_字符与字符串

1.什么是字符串

1.1 定义 ASCII码表中的所有字符任意组合,形成字符串

1.2 其它说明

  • 一个中文汉字表示两个字符
  • 字符串用 “ ” 括起来
  • 同样地,字符串也可以定义成字符数组的形式存放
  • 任何字符串
    末尾存在隐藏的\0;
    反斜杠0后面的内容系统认为不存在
    反斜杠0不计算在字符串长度内

2.字符串的输入输出

2.1 字符串的专有输入输出函数

  • 字符串的输入用gets_s(变量名,长度);
  • 字符串的输出用puts(变量名);

2.2 scanf与gets_s的区别

  • scanf不仅可以输入字符串,也可以输入其它类型变量;
  • gets_s只能用来对字符串进行输入
  • scanf 在读取字符串的时候于遇到空格会结束
  • gets_s只有遇到回车才表示结束

2.3 printf 与 puts 的区别

  • printf能输出包含字符串在内的各种变量
  • puts只能输出字符串

3.字符串涉及到的函数

3.1 字符串连接函数-strcat()

  • strcat=string catenate
  • 语法格式:strcat(字符串1,字符串2);
  • 作用:将字符串2的内容添加到字符串1的后面
  • 说明:字符串1末尾的\0会被删除,
    要注意组合起来的文本是否会越界(越过字符串1的数据长度界限)
    strcat()的返回值是字符串1的地址

3.2 字符串复制函数-strcpy()

  • strcpy=sting copy
  • 语法格式:strcpy(字符串1,字符串2);
  • 作用:字符串2的内容赋值给字符串1,并且字符串1的内容被覆盖掉
  • 注意:字符串1的长度要足够的长,否则字符串2无法全部赋值进字符串1中

3.3 字符串比较函数-strcmp()

  • strcmp=string compare
  • 语法格式:strcmp(字符串1,字符串2);
  • 作用:将两个字符串的字符从第0个开始比较,相同返回值为1,不同返回值为0

3.4 判断字符串子串-strstr()

  • strstr=string string
  • 语法格式:strstr(字符串1,字符串2);
  • 作用:判断字符串2,是否包含在字符串1中,包含返回1,不包含返回0

4.其它说明

  • 数组大小不代表数组元素的个数
  • gets与gets_s的区别体现在VS的版本上,gets_s是VS2015以后版本使用
  • 在使用字符串函数时,要加头文件#include<string.h>
  • ‘’ 与 “” 的区别,前者表示字符,后者表示字符串

4.实例代码

#include<stdio.h>
#include<iostream>
#include<string.h>//与字符串相关的头文件
int main()
{
 char str[128] = { 'h','s','s','ddd' };//赋值方式一:但是一般不会用
 char str1[128] = "hell world";//赋值方式二:常用
 // '' 表示字符  ""  表示字符串
 char str2[] = "hello world";//有十二个字符,因为所有字符串末尾会有一个\0作为结尾
 char str3[20] = "hello\0world";//考虑字符串只考虑\0前面的部分,后面部分无效
 printf("用于说明反斜杠0后面的内容不存在%s\n", str3);
  printf("\nstr3字符串长度%d\n", strlen(str3));//字符长度不包括反斜杠0
   puts(str1);
 printf("\n");
 char str4[100] = "liu tong xue zui bang";
 char str5[100] = "xu tong xue zui mei li";
 strcat(str4, str5);
 puts(str4);
 printf("\nstrcat函数的结果是%s\n",str4);
 char str6[100] = "你是最棒的";
 char str7[100] = "你是最优秀的";
 char str8[100] = "棒";
 if (strstr(str6, str8))
 {
  printf("\nstr6中的字符包含str8中的字符\n");
 }
 else
 {
  printf("\nstr6中的字符 不 包含str8中的字符\n");
 } 
  system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_41743247/article/details/88219360