C语言对字符串的处理

字符串的表现形式

在 C 语言中,可以用两种方法访问一个字符串。

  1. 用字符数组存放一个字符串,然后输出该字符串

    char string[]="hello world!";
    
  2. 用字符串指针指向一个字符串

    char *string = "Hello world!";
    

    注意:

    char a, *p=&a;

    表示p是一个指向字符变量a的指针变量

    char *s=“C language”;

    则表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。

    char *p;
    p = "C language"
    

    这个和 char *s="C language"; 是等效的。

使用字符指针变量和字符数组的比较

字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该
首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元
素组成的,它可用来存放整个字符串。

  • 对字符串指针方式

    char *ps = “C language”;
    可以写为:
    char *ps;
    ps = “C language”;

  • 对于数组方式

    char st[] = {“C language”};
    不能写为:
    char st[20] ;
    st = {“C language”};
    数组方式只能对字符数组各个元素逐个赋值。

从以上几点可以看出字符串指针变量与字符数组在使用时的区别,同时也可看出使用指针变量更加方便。前面说过,当一个指针变量在未取得确定地址前使用是危险的,容易引起错误。但是对指针变量直接赋值是可以的,因为 C 系统对指针变量赋值时要给以确定的地址。


字符串主要处理函数

除输入输出函数(puts()&gets())在头文件“stdio.h”中,其他字符串函数包含在头文件"string.h"。

  1. 字符串输出函数 puts

    格式:puts(字符数组名)

    功能:把字符数组中的字符串输出到显示器。

  2. 字符串输入函数 gets

    格式: gets(字符串数组名)

    功能: 从标准输入设备键盘上输入一个字符串。

  3. 字符串连接函数 strcat

    格式: strcat(字符串数组名1, 字符串数组名2)

    功能:把字符数组 2 中的字符串连接到字符数组 1 中字符串的后面,并删去字符串 1 后的串标志“\0”。

    说明:该函数返回值是字符数组1的首地址,且字符串1需要有足够的长度能装入被连接字符串。

  4. 字符串拷贝函数 strcpy

    格式:strcpy(字符串数组1,字符串数组2)

    功能:把字符数组 2 中的字符串拷贝到字符数组 1 中。串结束标志“\0”也一同拷贝。字符数名 2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

  5. 字符串比较函数 strcmp

    格式:strcmp(字符数组1, 字符数组2)

    功能:按照 ASCII 码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

  6. 测字符串长度函数 strlen

    格式: strlen(字符串数组名)

    功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。

你可能感兴趣的:(C语言,c语言,c++,开发语言)