C 字符串

在 C 语言编程中,由空字符 \0 结尾的一维字符数组称为字符串。让我们通过示例了解如何声明字符串数组、访问元素或字符以及打印字符。

C 语言编程中字符串声明的语法如下。例如,char full_name[50];。这里,full_name 是名称,大小等于 50。这意味着它最多允许 49 个字符。

char Name [Size];
  • 名称:请指定名称。例如,full_name、employee_name 等
  • 大小:所需的字符数加上一(\0)。例如,如果大小 = 10,则可以容纳 9 个字符。

C 字符串初始化

初始化字符串有多种方法。

char name[] = “Tutorial Gateway”; // 声明时不指定大小

char name[50] = “Tutorial Gateway”; // 声明时指定大小

在这种编程语言中声明字符串字符数组。

char name[] = {‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’, ‘G’, ‘a’, ‘t’, ‘e’, ‘w’, ‘a’, ‘y’, ‘\0’};
char name[16] = {‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’,’ G’, ‘a’, ‘t’, ‘e’, ‘w’, ‘a’, ‘y’, ‘\0’};

您也可以使用指针来声明它

char *str;
char *name = “hello world”;

声明并打印字符串的 C 程序

在这个程序中,我们以可能的方式声明字符数组。接下来,我们使用 printf 语句来打印字符数组。我建议您参考数组文章。

您必须使用 %s 来显示句子或文本作为输出。或者您可以使用 C 编程的 puts 函数。

#include  <stdio.h>

int main(int argc, const char * argv[]) {
    // Without Size
    char name1[] = "Tutorial Gateway";
    
    // With Size
    char name2[50] = "Tutorial Gateway";
    
    // Declare Characters Array
    char name3[] = {'T','u','t','o','r','i','a','l','G','a','t','e','w','a','y', '\0'};
    
    char name4[16] = {'T','u','t','o','r','i','a','l','G','a','t','e','w','a','y', '\0'};
    
    printf("Name1: %s \n", name1);
    printf("Name2: %s \n", name2);
    printf("Name3: %s \n", name3);
    printf("Name4: %s \n", name4);
    return 0;
}
Declare and Print String in C programming

允许用户从命令行输入文本

在这个程序中,我们允许用户输入他们自己的字符串。接下来,我们打印用户给出的句子作为输出。

#include  <stdio.h>

int main(int argc, const char * argv[])
{
    char name1[50];
    printf("Please enter the Name : ");
    scanf("%s", name1);
    
    printf("Name: %s \n", name1);
    return 0;
}
Please enter the Name : TutorialGateway
Name: TutorialGateway 

在 C 语言编程中访问字符串的元素

您可以使用索引来访问单个字母。通过这个索引,您可以在任何给定位置插入、删除或更新任何字符串字符。

#include  <stdio.h>

int main(int argc, const char * argv[])
{
    char name[50];
    int i = 0;
    
    printf("Please enter the Name : ");
    scanf("%s", name);
    
    while (name[i] != '\0')
    {
        printf("The Character at %d Index Position = %c \n", i, name[i]);
        i++;
    }
    return 0;
}
Access Elements of a String Example

字符串或字符数组的逐次迭代分析如下所示。

第一次迭代:while (name[i] != ‘\0’)
这里,i 的值为 0。这意味着,name[0] = h 所以,条件为真
它将打印该字母以及索引位置。
接下来,i 的值将递增

第二次迭代:while (name[1] != ‘\0’)
while (e != ‘\0’) – 条件为真

C 字符串第三次迭代:while (name[2] != ‘\0’)
while (l != ‘\0’) – 这意味着条件为真。

第四次迭代:while (name[3] != ‘\0’)
while (l != ‘\0’) – 条件为真

第五次迭代:while (name[4] != ‘\0’)
while (0 != ‘\0’) – 此条件为真

第六次迭代:while (name[5] != ‘\0’)
while (\0 != ‘\0’) – 条件为假。因此,编译器将退出 While 循环

如何找到字符串的长度?

在这个程序中,我们使用内置函数 strlen 来查找字符数组的长度。

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

int main(int argc, const char * argv[])
{
    char nam[50];
    
    printf("Enter the Name : ");
    scanf("%s", nam);
    
    float len;
    len = strlen(name);
    printf("The Length = %.f \n", len);

    return 0;
}
Finding the String Length

C 编程语言字符串函数

以下是该语言中可用的字符串函数列表。

  1. memchr:查找字符的第一次出现,并返回指向它的指针。
  2. strcat:用于连接或组合
  3. strncat:与上面相同。但是,您可以限制要添加的字符。它将用户指定的字符附加到末尾。
  4. strcmp:用于比较两个字符串并检查它们是否相等。
  5. strncmp:此函数与 strcmp 相同。但是,您可以限制要比较的字符总数。
  6. strcpy:用于浅拷贝。
  7. strncpy:与 strcpy 相同。但是,您可以限制要复制的字符数。
  8. strcoll:使用 LC_COLLATE 设置,它将比较两者。
  9. strlen:查找总字符数或其长度。
  10. strlwr:转换为小写。
  11. strpbrk:它在第一个字符串中查找与第二个字符串中任何字符匹配的第一个字符。
  12. strrev:用于反转。
  13. strupr:将其转换为大写。
  14. strtok:它有助于使用给定的分隔符对字符串进行分词。
  15. strrchr
  16. strchr
  17. strstr