C中的字符串

字符串被定义为一个字符数组。字符数组和字符串之间的区别在于,字符串以特殊字符“”结尾。

null

String-in-C

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

char str_name[size];

在上述语法中,str_name是字符串变量的任何名称,size用于定义字符串的长度,即字符串将存储的字符数。请记住,还有一个额外的终止字符,它是空字符(“”),用于指示字符串的终止,该字符串不同于普通字符数组。

初始化字符串 :字符串可以用不同的方式初始化。我们将通过一个例子来解释这一点。下面是一个将名称声明为str的字符串并用“geeksforgeks”初始化的示例。

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',' '};

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

下面是字符串“极客”的内存表示。 图片[2]-C中的字符串-yiteyi-C++库

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

// C program to illustrate strings
#include<stdio.h>
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<stdio.h>
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<stdio.h>
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

相关文章 :

本文由 严酷的阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享