在C中声明一个String类型

时间:2015-11-03 07:09:30

标签: c string variables

我是C的新手,我来自Java背景。

所以,我想声明一个String并立即尝试这个:

String text;

然后它告诉我术语" String"没有定义。 我通过互联网搜索了一下,发现了这个:

char text[16] = { 'E','i','n',' ','l','a','n','g','e','r',' ','T','e','x','t','\0' };

但这不是很好,而且工作太多了。必须有另一种更好的方法。 也许导入一些东西。有没有人有这个好的解决方案?

4 个答案:

答案 0 :(得分:3)

C中没有字符串类型。

字符串变量是由空字符终止的1-d ASCII字符数组。

您尝试声明字符串的方法是正确的。

char text[16] = { 'E','i','n',' ','l','a','n','g','e','r',' ','T','e','x','t','\0' };

但简单的就是

char str[]="Ein Langer Text"

这是初始化与前一个相同,但在这种情况下,编译器会自动在末尾插入空字符。

一个简单的例子:

#include <stdio.h>
int main(int argc, char const *argv[])
{
char str[]="Ein Langer Text";
int i;
for (i = 0; str[i]!='\0' ; ++i)
{
   printf("%c",str[i]);

}
printf("\n");
return 0;
}

您甚至可以使用有限大小的字符串,例如:

char[40]="whatever you want to keep here up to fourty characters";

答案 1 :(得分:2)

C中,没有名为String的标准数据类型。它可以是字符串文字或char数组。

FWIW,

char text[16] = { 'E','i','n',' ','l','a','n','g','e','r',' ','T','e','x','t','\0' };

可以缩短为

char text[ ] = { "Ein langer Text"};   //modifiable, but size limited to
                                       // the initalizer

char text[128] = { "Ein langer Text"};  // modifiable, with larger size than initializer

char *text = "Ein langer Text";  //not modifiable

答案 2 :(得分:0)

它更简单:

char text[]="test 123"; 

char text[9]="test 123"; 

答案 3 :(得分:-2)

在c中,没有字符串类型:

你可以尝试:

char *mystring = "Hello world";

我可以尝试使用c ++:

#include <iostream>

std::string mystring = "Hello";