我是C的新手,我来自Java背景。
所以,我想声明一个String并立即尝试这个:
String text;
然后它告诉我术语" String"没有定义。 我通过互联网搜索了一下,发现了这个:
char text[16] = { 'E','i','n',' ','l','a','n','g','e','r',' ','T','e','x','t','\0' };
但这不是很好,而且工作太多了。必须有另一种更好的方法。 也许导入一些东西。有没有人有这个好的解决方案?
答案 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";