栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 1. 字符串输入与输出
    • 1.1 字符串的输入函数(gets)
    • 1.2 字符串的输出函数(puts)
  • 2. 字符数组
  • 3. 字符串数组
  • 4. 常用字符串函数
    • 4.1 求字符串长度(strlen)
    • 4.2 字符串拷贝(strcpy)
    • 4.3 字符串连接(strcat)
    • 4.4 字符串比较(strcmp)
    • 4.5 字符串与字符函数的扩展用法

1. 字符串输入与输出 1.1 字符串的输入函数(gets)
  • char * gets(char *s)
  • 字符串的最后个字符是,要注意数据长度
  • gets函数不会让空格成为字符串的结束标志,而scanf会,scanf需要 %c配合才能正常输入
    char s[5]; \只能存四个字符,因为最后个字符是 
    gets(s)
    pritnf("%sn", s);
    
1.2 字符串的输出函数(puts)
  • puts(string);
  • puts()和printf()不一样的是puts()会自动换行不需要n
2. 字符数组
  • 用法:char c[10], ch[3][4];
  • 字符数组的初始化:首先我们需要知道{'a', 'b', 'c', ''}=="abc"
    • 逐个字符赋值:
    	char ch[5]={'h', 'e', 'l', 'l', 'o';} //完整赋值
    	char ch[5]={'b', 'o', 'y'}; //部分赋值,那ch[3], ch[4]都是,NULL
    
    字符串boy
    ASCII9811112100
    • 用字符串常量:
    //三种方法都可以
    char ch[]="HELLO";
    char ch[6]="HELLO";
    char ch[6]={"HELLO"};
    
    • 注意:在打印字符数组的时候我们可以将其当做字符串来打印,但是我们需要注意的是这个字符数组的最后一位得是。否则,会随着地址一直往下打印直到找到
3. 字符串数组
  • C语言中无字符串变量,而是用字符数组并以结尾当做字符串。
  • 举个例子:在内存中占6个字节,字符串长度5
字符串hello
ASCII1041011081081110
  • 举个二维数组的例子
    char fruit[][7]={"apple", "orange", "grape"};
    
水果01123456
fruit[0]apple
fruit[1]orange
fruit[2]grape
  • 例子:输入一个字符串,然后逆序输出
    #include 
    
    ...
    
    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
4.1 求字符串长度(strlen)
  • 用法:strlen(字符数组),我们可以通过man strlen查询细节
  • 求字符串长度,且不包括在内。
  • xhh:表示十六进制数代表的符号,举个例子在字符串中char s[]="x69141" → rightarrow →ia
  • ddd:表示8进制
  • 练习:对于以下字符串,strlen(s)的值为:
    char s[10] = {'A', '', 'B', 'C', '', 'D'}; 
    printf("strlen: %ld, sizeof: %ldn", strlen(s), sizeof(s)/sizeof(char)); //strlen: 1, sizeof: 10
    char s[]="tv\willn"; //长度为3
    char s[]="x69141n"; //长度为3
    
4.2 字符串拷贝(strcpy)
  • 用法:strcpy(目标字符串, 需拷贝的字符串)

  • 返回:目标字符串的首地址

  • 要求:目标字符串的长度需 ≥ ge ≥需拷贝的字符串长度

  • 注意:

    • 硬拷贝
    • 拷贝时,会一起拷贝
  • 例子

    char src[]="strcpy", dest[10];
    strcpy(dest, src);
    puts(src); //strcpy
    puts(dest); //strcpy
    dest[0] = 'a';
    puts(src); //strcpy
    puts(dest); //atrcpy
    
4.3 字符串连接(strcat)
  • 用法:strcat(string1, string2)
  • 把string2连在string1的后面
  • 返回string1的首字母
  • 要求:
    • string1需要足够大能放的下string2
    • 需要取消string1的,连接string2,保留string2的
  • 举个例子
    char dest[10] = "abcas", src[] = "123";
    strcat(dest, src);
    puts(dest);
    
4.4 字符串比较(strcmp)
  • 用法:strcmp(string1, string2)
  • 作用: 比较两个字符串
  • 比较的方法:从左往右逐字比较,直到遇到不同字符或(如果string1先遇到,则string2大。因为的ASCII值是0)
  • 返回:int整型
    • string1
    • string1>string2:返回正整数1
    • string1==string2:返回0
4.5 字符串与字符函数的扩展用法
函数类型函数用法
字符串strncpy(p, p1, n)p1拷贝给p,并指定复制的长度
strncat(p, p1, n)p1连在p的后面,并指定连的长度
strncmp(p, p1, n)比较指定长度字符串
strcasecmp(p, p1)忽略大小写比较字符串
strchr(string, ch)在字符串中查找指定字符,返回第一个在该字符串中出现的地址,没找到返回空
找出一个字符在字符串中的位置:strchr(s1, ch)-s1
strrchr(string, ch)在字符串中查找指定字符,返回最后一个在该字符串中出现的地址,没找到返回空
strstr(p, p1)查找字符串
字符函数isalpha(ch)检查是否为字母字符(不是字符串,是单个字符 )
isupper(ch)检查是否为大写字母字符
islower(ch)检查是否为小写字母字符
isdigit(ch)检查该字符是否为数字
toupper(ch)变大写
tolower(ch)变小写
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号