C语言-字符和字符串专题-输入输出、字符(串)数组和字符(串)函数和字符指针-学习笔记07

1. 字符串输入与输出

1.1 字符串的输入函数(gets)

  • char * gets(char *s)
  • 字符串的最后个字符是\0,要注意数据长度
  • gets函数不会让空格成为字符串的结束标志,而scanf会,scanf需要 %c配合才能正常输入
    char s[5]; \\只能存四个字符,因为最后个字符是 \0
    gets(s)
    pritnf("%s\n", s);
    

1.2 字符串的输出函数(puts)

  • puts(string);
  • puts()printf()不一样的是puts()会自动换行不需要\n

2. 字符数组

  • 用法:char c[10], ch[3][4];
  • 字符数组的初始化:首先我们需要知道{'a', 'b', 'c', '\0'}=="abc"
    • 逐个字符赋值:
    	char ch[5]={
         'h', 'e', 'l', 'l', 'o';} //完整赋值
    	char ch[5]={
         'b', 'o', 'y'}; //部分赋值,那ch[3], ch[4]都是\0,NULL
    
    字符串 b o y \0 \0
    ASCII 98 111 121 0 0
    • 用字符串常量:
    //三种方法都可以
    char ch[]="HELLO";
    char ch[6]="HELLO";
    char ch[6]={
         "HELLO"};
    
    • 注意:在打印字符数组的时候我们可以将其当做字符串来打印,但是我们需要注意的是这个字符数组的最后一位得是\0。否则,会随着地址一直往下打印直到找到\0

3. 字符串数组

  • C语言中无字符串变量,而是用字符数组并以\0结尾当做字符串。
  • 举个例子:在内存中占6个字节,字符串长度5
字符串 h e l l o \0
ASCII 104 101 108 108 111 0
  • 举个二维数组的例子
    char fruit[][7]={
         "apple", "orange", "grape"};
    
水果 0 1 1 2 3 4 5 6
fruit[0] a p p l e \0 \0 \0
fruit[1] o r a n g e \0 \0
fruit[2] g r a p e \0 \0 \0
  • 例子:输入一个字符串,然后逆序输出
    #include <string.h>
    
    ...
    
    char arr[20];
    int i, n;
    printf("Please input a string: ");
    gets(arr);
    n= strlen(arr)
    for (i=n; i>=0; i--)
    	putchar(arr[i]);
    putchar('\n');
    

4. 常用字符串函数

  • 首先我们要先引入# include <string.h>

4.1 求字符串长度(strlen)

  • 用法:strlen(字符数组),我们可以通过man strlen查询细节
  • 求字符串长度,且\0不包括在内。
  • \xhh:表示十六进制数代表的符号,举个例子在字符串中char s[]="\x69\141" → \rightarrow ia
  • \ddd:表示8进制
  • 练习:对于以下字符串,strlen(s)的值为:
    char s[10] = {
         'A', '\0', 'B', 'C', '\0', 'D'<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值