字符串的神奇运用--01,字符串特点简述

C语言字符串的神奇应用–01,字符串特点简述


在学习C语言过程中,除了神出鬼没的指针难以驯服之外,又碰到一个让人头大的东西----字符串。字符串由于ASCII码的存在,存在排序、比较的操作;记录一些遇到的比较经典的字符串骚操作。

1、ASCII码

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。

大写字母

ASCII 编码中第 65~90 个字符(A ~ Z)是字母表中26个字母的大写格式,其编码跟字母顺序按正序排列。

小写字母

ASCII 编码中第 97~122 个字符(a ~ z)是字母表中26个字母的小写格式,其编码跟字母顺序按正序排列。

2、把字符串转化成数字

数字在计算机中既能以数值形式存储,也能以字符串形式存储,比如数字213以’2’ 、‘1’ 、‘3’ 、’\o’ 的形式存储在字符串数组中。以数值形式存储,存储的是int类型的值。使用printf() 和scanf()函数和附带的%d等转换说明,将数字在数值形式和字符串形式之间进行转换。
atoi()函数可以把一个字母数字转换为一个整数:

//头文件   :#include <stdlib.h>
int atoi(const char *nptr);
//使用案例
char str1[1000] = "hello5";
printf("%d\n",atoi(str1));        //0
char str2[1000] = "5hello5";
printf("%d\n",atoi(str2));       //5
char str3[1000] = "555hello5";
printf("%d\n",atoi(str3));       //55

atoi()函数通过传入一个字符串,将字符串头部存储与字符串格式的数字,转化成int值返回,若字符串头部不是数字,返回0。
还可以使用printf()和%d,直接将字符的ASCII编码打印出来。

char str3[1000] = "555hello5";
printf("%d\n",'l');              //108
printf("%d\n",str3[5]);          //108

3、字符串的比较

strcmp()函数

int strcmp(const char *s1, const char *s2);

strcmp()函数比较两个字符串s1和s2中字符在ASCII表中的大小,若两字符串相等,则返回0,依次比较两字符串中的字符的ASCII码,出现第一个字符不同时,大于则返回1,小于则返回-1;

strcmp("A", "A")//0
strcmp("B", "A")//1
strcmp("A", "B")//-1
strcmp("AB", "B")//-1
strcmp("AC", "AB")//-1

注意:函数strcmp()比较的是字符串“A",不是字符’A‘ ,char类型实际是整型,可以用关系运算符进行比较。

char ch1 = 'A';
char ch2 = 'B';
if(ch1 < ch2)    //为真
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值