📜  C中的字符串

📅  最后修改于: 2021-05-28 04:55:37             🧑  作者: Mango

字符串定义为字符数组。字符数组和字符串之间的区别是字符串以特殊字符’\ 0’终止。

C弦

字符串声明:声明字符串就像声明一维数组一样简单。以下是声明字符串的基本语法。

char str_name[size];

在上面的语法中,str_name是为字符串变量指定的任何名称,大小用于定义字符串的长度,即字符串将存储的字符数。请记住,还有一个额外的终止字符,即Null字符(’\ 0’),用于指示字符串的终止,该字符串与普通字符数组不同。

初始化字符串:可以用不同的方式初始化字符串。我们将借助一个示例对此进行解释。下面的示例声明一个名称为str的字符串,并使用“ GeeksforGeeks”对其进行初始化。

1. char str[] = "GeeksforGeeks";

2. char str[50] = "GeeksforGeeks";

3. char str[] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

4. char str[14] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

下面是字符串“ Geeks”的内存表示形式。

现在让我们看一个示例程序,以清楚地了解如何在C中声明和初始化字符串以及如何打印字符串。

// C program to illustrate strings
  
#include
  
int main()
{   
    // declare and initialize string
    char str[] = "Geeks";
      
    // print string
    printf("%s",str);
      
    return 0;
}

输出:

Geeks

我们可以在上面的程序中看到可以使用普通的printf语句打印字符串,就像我们打印其他任何变量一样。与数组不同,我们不需要通过字符打印字符串的字符。 C语言没有为字符串提供内置的数据类型,但是它具有访问说明符“ %s ”,可用于直接打印和读取字符串。

以下是从用户读取字符串的示例程序

// C program to read strings
  
#include
  
int main()
{   
    // declaring string
    char str[50];
      
    // reading string
    scanf("%s",str);
      
    // print string
    printf("%s",str);
  
    return 0;
}

您可以在上面的程序中看到,也可以使用单个scanf语句读取字符串。另外,您可能会想为什么我们在scanf语句中没有使用字符串名称为’str’的’&’符号!要了解这一点,您将不得不回忆起您对scanf的了解。我们知道,“&”符号用于将变量的地址提供给scanf()函数,以将读取的值存储在内存中。由于str []是字符数组,因此使用不带大括号'[‘和’]’的str将给出此字符串的基址。这就是为什么在这种情况下我们不使用’&’的原因,因为我们已经将字符串的基地址提供给scanf了。

将字符串传递给函数:由于字符串是字符数组,因此我们可以通过将数组传递给函数的相同方法来将字符串传递给函数。以下是执行此操作的示例程序:

// C program to illustrate how to 
// pass string to functions
#include
  
void printStr(char str[])
{
    printf("String is : %s",str);
}
  
int main()
{   
    // declare and initialize string
    char str[] = "GeeksforGeeks";
      
    // print string by passing string
    // to a different function
    printStr(str);
      
    return 0;
}

输出:

String is : GeeksforGeeks

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。