C语言字符数组怎么用?

Python014

C语言字符数组怎么用?,第1张

C语言的字符数组有两种,比较方式也有所不同。

1 字符串

C语言的字符串是用字符数组表示的。约定以'\0'(ascii码0)作为结尾标记。

对于字符串类的字符数组,可以用string.h中的strcmp函数进行比较。

int strcmp(char *str1, char *str2)

其比较规则为:

a, 从左向右依次比较每个元素;

b, 如果出现str1的元素ascii码比较大,则返回1;如果出现str2元素ascii码比较大,则返回-1。如果相等,则继续。

c, 如果一直相等,直到遇到\0,这时检查是否均为\0,如果均为\0,那么返回0;

d, 如果str1到\0,而str2没到,返回-1否则返回1。

总结规则就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。

2 不带\0结束的字符数组。

对于此类数组,没有库函数可供使用,只能自己写函数进行比较。规则可以仿照strcmp的规则。

由于没有\0作为结束,所以参数中必须传入每个数组的元素个数。

int char_array_cmp(char *s1, int l1, char *s2, int l2)

{

int lmin = l1>l2? l2:l1//较小长度者。

int i

for(i = 0i <lmini ++)

if(s1[i] >s2[i]) return 1

else if(s1[i] <s2[i]) return -1

//运行到这里,表示所有已判断元素均相等。

if(l1 == l2) return 0

if(l1 >l2) return 1

return -1//l1 <l2的情况。

}

1、C语言中字符是使用char来定义的,使用关系运算符(>,<,=)即可对字符进行比较。在编译器中定义a、b两个字符型变量,并为其赋值,按照如图所示编写代码。

2、运行代码后,我们可以得到如图所示结果。1表示条件为真,0表示条件为假。

3、字符串使用char[]来定义,可以使用strcmp()来判断大小,也可以使用关系运算符(>,<,=)判断大小。

4、使用strcmp()对字符串进行比较大小时,需要引入头文件string.h。

5、运行代码后,我们可以得到如图所示结果。使用strcmp进行判断时,返回结果为0,表示两个字符串相等。返回结果大于0,表示第一个参数字符串大。返回结果小于0,表示第二个参数字符串大。

在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:

puts():输出字符串并自动换行,该函数只能输出字符串。

printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。

这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的代码:

#include <stdio.h>

int main(){

char str[] = "http://c.biancheng.net"

printf("%s\n", str)  //通过字符串名字输出

printf("%s\n", "http://c.biancheng.net")  //直接输出

puts(str)  //通过字符串名字输出

puts("http://c.biancheng.net")  //直接输出

return 0

}

运行结果:

http://c.biancheng.net

http://c.biancheng.net

http://c.biancheng.net

http://c.biancheng.net

注意,输出字符串时只需要给出名字,不能带后边的[ ],例如,下面的两种写法都是错误的:

printf("%s\n", str[])

puts(str[10])

扩展资料:

由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

参考资料来源:百度百科-字符串