C语言 10-字符和字符串常用处理函数

本文目录

  • 一、字符处理函数
  • 二、字符串处理函数

  说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。

一、字符处理函数

  下面介绍的两个字符处理函数都是在stdio.h头文件中声明的。

1.字符输出函数putchar

putchar(65); // A

putchar(‘A‘); // A

int a = 65;
putchar(a); // A

上面的3种用法,输出的都是大写字母A。

* putchar一次只能输出一个字符,而printf可以同时输出多个字符

printf("%c %c %c", ‘A‘, ‘B‘, ‘a‘);

2.字符输入函数getchar

char c;
c = getchar();

getchar会将用户输入的字符赋值给变量c。

* getchar函数可以读入空格、TAB,直到遇到回车为止。scanf则不能读入空格和TAB。

* getchar一次只能读入一个字符。scanf则可以同时接收多个字符。

* getchar还能读入回车换行符,这时候你要敲2次回车键。第1次敲的回车换行符被getchar读入,第2次敲的回车键代表输入结束。

二、字符串处理函数

  下面介绍的字符串处理函数都是在string.h头文件中声明的,使用前要包含这个头文件。

1.strlen函数

* 这个函数可以用来测量字符串的字符个数,不包括\0

1 int size = strlen("mj"); // 长度为2
2
3 char s1[] = "lmj";
4 int size1 = strlen(s1); // 长度为3
5
6 char s2[] = {‘m‘, ‘j‘, ‘\0‘, ‘l‘, ‘m‘, ‘j‘, ‘\0‘};
7 int size2 = strlen(s2); // 长度为2

  看一下第7行,strlen函数会从s2的首地址开始计算字符个数,直到遇到空字符\0为止。因为s2的第1个\0之前只有mj这2个字符,所以长度为2。

2.strcpy函数

1 char s[10];
2 strcpy(s, "lmj");

  strcpy函数会将右边的"lmj"字符串拷贝到字符数组s中。从s的首地址开始,逐个字符拷贝,直到拷贝到\0为止。当然,在s的尾部肯定会保留一个\0。

* 假设右边的字符串中有好几个\0,strcpy函数只会拷贝第1个\0之前的内容,后面的内容不拷贝

1 char s[10];
2 char c[] = {‘m‘, ‘j‘, ‘\0‘, ‘l‘, ‘m‘, ‘j‘, ‘\0‘};
3 strcpy(s, c);

  最后字符串s中的内容为:mj

3.strcat函数

char s1[30] = "LOVE";
strcat(s1, "OC");

  strcat函数会将右边的"OC"字符串拼接到s1的尾部,最后s1的内容就变成了"LOVEOC"

  strcat函数会从s1的第1个\0字符开始连接字符串,s1的第1个\0字符会被右边的字符串覆盖,连接完毕后在s1的尾部保留一个\0

* 注意下面的情况

1 char s1[30] = {‘L‘, ‘m‘, ‘j‘, ‘\0‘, ‘L‘, ‘o‘, ‘v‘, ‘e‘, ‘\0‘};
2 strcat(s1, "OC");
3 printf("%s", s1);

  第1行初始化的s1有2个\0,经过第2行的strcat函数后,输出结果:

4.strcmp函数

* 这个函数可以用来比较2个字符串的大小

* 调用形式为:strcmp(字符串1, 字符串2)

* 两个字符串从左至右逐个字符比较(按照字符的ASCII码值的大小),直到字符不相同或者遇见‘\0‘为止。如果全部字符都相同,则返回值为0。如果不相同,则返回两个字符串中第一个不相同的字符ASCII码值的差。即字符串1大于字符串2时函数返回值为正,否则为负。

1 char s1[] = "abc";
2 char s2[] = "abc";
3 char s3[] = "aBc";
4 char s4[] = "ccb";
5
6 printf("%d, %d, %d", strcmp(s1, s2), strcmp(s1, s3), strcmp(s1, s4));

输出结果:

  • s1和s2相同,所以返回0
  • s1和s3是第2个字符不相同,b的ASCII码值是98,B的ASCII码值是66,b - B = 32,所以返回32
  • s1和s4是第1个字符就不相同,a的ASCII码值是97,c的ASCII码值是99,a - c = -2,所以返回-2
时间: 2024-10-06 17:17:55

C语言 10-字符和字符串常用处理函数的相关文章

C语言之字符与字符串

字符和字符串 字符是一个字母.数字.标点或其他诸如此类的符号:字符串是任何字符序列. 字符串用于存储由字母.数字.标点和其他符号组成的文本数据. C语言使用char数据类型老存储字符.char是一种整型数值类型. C语言存储字符的方式:在计算机内存中,所有的数据都是以数值方式存储的. 字符并不能直接存储,但是每个字符都有对应的数值编码. 这种编码被称为ASCII码或ASCII字符集. 在这种编码中,每个大小写字母.数字.标点和其他符号都对应于一个0~255值. <span style="f

JavaScript字符串常用操作函数之学习笔记

字符串简介 使用英文单引号或双引号括起来,如:’Hello’,”World”,但是不能首尾的单引号和双引号必须一致,交错使用,如果要打印单引号或者双引号,可以使用转义字符\’(单引号),\”(双引号)  代码如下 复制代码 var str_1 = 'Hello World!';  //Hello World!var str_2 = "Hello World!";  //Hello World!var str_3 = '他说:"这样可以的."';  //他说:&quo

10个Python set 常用操作函数!

今天为大家带来的内容是10个Python set 常用操作函数!(附带详细解答)文章内容具有不错的参考意义,希望在此能够对各位有所帮助. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员.但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值. set和dict一样,只是没有value,相当于dic

C语言的字符与字符串处理函数

字符处理有两类函数:分类与转换.分类函数的名称以is开头,转换函数的名称以to开头,一般在ctype.h头文件中声明.宽字符处理也有分类与转换函数之分,这些函数的名称以isw和tow开头,还有通用的分类与转换函数,wctrans和towctrans,这些函数都在头文件wctype.h中定义. 习惯上,C语言中的字符串是以null字符('\0')结尾的字符数组.C89增补1增加了与普通字符串函数并行的宽字符串函数,差别在于宽字符串函数所带的参数类型为wchar_t*而不是char*,宽字符串函数名

【C语言】10-字符和字符串常用处理函数

一.字符处理函数 下面介绍的两个字符处理函数都是在stdio.h头文件中声明的. 1.字符输出函数putchar putchar(65); // A putchar('A'); // A int a = 65; putchar(a); // A 上面的3种用法,输出的都是大写字母A. * putchar一次只能输出一个字符,而printf可以同时输出多个字符 printf("%c %c %c", 'A', 'B', 'a'); 2.字符输入函数getchar char c; c = g

一起talk C栗子吧(第一百七十九回:C语言实例--字符和字符串输出函数二)

各位看官们,大家好,上一回中咱们说的是字符和字符串输出函数的例子,这一回咱们继续说该例子.闲 话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了字符和字符串输出函数的用法,満篇都是理论,古语云:纸上得来终觉浅,绝知此事要躬行.这一回中我们要把这些纸上得来理论应用于实践中,让我们一起动手去实践吧. 接下来,我们将通过具体的代码来说明如何使用字符输出函数,以及使用时的注意事项: int main() { char ch = 'a'; char *str = "hello

字符类型及常用的函数

一.概述 字符串类型的表示 字符串操作符 字符串处理函数 字符串处理方法 字符串类型格式化 二.字符串类型的表示 由0个或多个字符组成的有序字符序列 字符串由一对单引号或一对双引号表示:"请输入带有符号的温度值: "或者 'C' 字符串是字符的有序序列,可以对其中的字符进行索引:"请" 是 "请输入带有符号的温度值: " 的第0个字符 字符串有 2类共4种 表示方法 由一对单引号或双引号表示,仅表示单行字符串:"请输入带有符号的温度值:

【C语言】请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”

// 请实现字符串循环右移函数.列如字符串"abcdefghi"向右移2位就是"hiabcdefg" // 函数原型为:void RightLoopMove(char *pstr,unsigned short steps) #include <stdio.h> #include <assert.h> #include <string.h> void severse(char *p,char *q) //字符串翻转 { char t

C语言输入字符和字符串

C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据. getchar().getche().getch():这三个函数都用于输入单个字符. gets():获取一行数据,并作为字符串处理. scanf() 是最灵活.最复杂.最常用的输入函数, 输入单个字符 输入单个字符当然可以使用 scanf() 这个通用的输入函数,对应的格式控制符为%c,上节已经讲到了.本节我们重点讲解的是 getchar().getche(