📜  c 字符串数组 - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:59:39.350000             🧑  作者: Mango

C 字符串数组

在C语言中,字符串被表示为一组字符数组,每个字符都是一个字节长,需要以null字符('\0')来结尾。C语言中的字符串实际上是以字符数组的形式进行表示的。

在C语言中,可以使用字符数组来表示字符串。字符数组是定义在程序中并用于存储字符的变量。字符数组可以定义为以下两种方式:

char str[] = "Hello World";

或者

char str[12] = "Hello World";

其中第一个定义是C编译器自动计算字符串数组的大小,第二个定义指定了字符数组的大小。

除了字符数组之外,C语言还提供了许多用于处理字符串的库函数,例如strlen,strcmp,strcpy等。

字符串的输入和输出

C语言中,使用printf()函数可将字符串打印到控制台。例如,下面的代码将打印"Hello World"到控制台上。

#include <stdio.h>
int main()
{
    printf("Hello World");
    return 0;
}

为了从控制台中读取用户输入的字符串,可以使用scanf()函数,如下面的代码所示:

#include <stdio.h>
int main()
{
    char name[50];
    printf("Enter your name: ");
    scanf("%s", name);
    printf("Hello %s!", name);
    return 0;
}
字符串的操作

在C语言中,字符串也支持一些简单的操作,例如连接字符串和查找字符串中的子串。C标准库中提供了一些函数来执行这些操作,例如 strcpy(),strcat(),strchr() 和 strstr()。下面展示一些常见的字符串操作函数:

strcpy()

strcpy()函数用于将一个字符串复制到另一个字符串中。以下是具体的示例:

#include <stdio.h>
#include <string.h> 

int main()
{
    char str1[20], str2[20];
    
    // 复制 str1 到 str2 中
    strcpy(str2, str1);
    
    printf("str1: %s\n", str1);
    printf("str2: %s\n", str2);
    
    return 0;
}
strcat()

strcat()函数用于将一个字符串连接到另一个字符串中。以下是具体的示例:

#include <stdio.h>
#include <string.h> 

int main()
{
    char str1[20] = "Hello ", str2[] = "World";
    
    // 将 str2 连接到 str1 中
    strcat(str1, str2);
    
    printf("%s", str1);
    
    return 0;
}
strchr()

strchr()函数用于查找字符串中第一次出现某个字符的位置。以下是具体的示例:

#include <stdio.h>
#include <string.h> 

int main()
{
    char str[] = "C Programming Language";
    char *ch = strchr(str, 'm');
    
    printf("%s", ch);
    
    return 0;
}
strstr()

strstr()函数用于查找字符串中第一次出现某个子串的位置。以下是具体的示例:

#include <stdio.h>
#include <string.h> 

int main()
{
    char str[] = "C Programming Language";
    char *subStr = "ram";
    char *ch = strstr(str, subStr);
    
    printf("%s", ch);
    
    return 0;
}
总结

C语言中的字符串实际上就是一个字符数组,使用一些简单的操作,可以对字符串进行连接,查找和复制等操作。C标准库中提供了许多函数来支持这些操作。