我知道如何编程 Java,现在我正在尝试学习 C 编程。
我想从我创建的 char
的 Array
中写出一个 String
,并在一行中写出每个 String (我正在创建一个控制台应用程序)。
到目前为止我已经知道了;
int main()
{
int i;
int j;
char aarhus[] = {'\x8F','r','h','u','s',' ','H','\0'};
char esbjerg[] = {'E','s','b','j','e','r','g','\0'};
char stationer[] = {*aarhus,*esbjerg};
for (j=0;stationer[j] != '\0';j++) {
printf("%c\n", stationer[j]);
}
return 0;
}
当然,包含在顶部。
但是当我启动该程序时,它只写了 ÅEEsbjerg 而不是 Århus Esbjerg(两者都在一行上,正如我所希望的那样)。如果我在 stationer[]
中添加 \0
,我得到的只是同一行上的 ÅE。几个小时以来,我一直在尝试解决这个问题,但到目前为止还没有。我希望你能帮忙。提前致谢
最佳答案
您可能正在寻找这样的东西:
int main()
{
int j;
char aarhus[] = {'\x8F', 'r', 'h', 'u', 's', ' ', 'H', '\0'};
char esbjerg[] = {'E', 's', 'b', 'j', 'e', 'r', 'g', '\0'};
char* stationer[] = {aarhus, esbjerg, 0};
for(j = 0; stationer[j] != 0; j++)
{
printf("%s", stationer[j]);
}
}
或者可能是这样的:
int main()
{
int j;
char aarhus[] = {'\x8F', 'r', 'h', 'u', 's', ' ', 'H', '\0'};
char esbjerg[] = {'E', 's', 'b', 'j', 'e', 'r', 'g', '\0'};
char* stationer[] = {aarhus, esbjerg};
int count = sizeof(stationer) / sizeof(char*);
for(j = 0; j < count; j++)
{
printf("%s", stationer[j]);
}
}
关于c - 从数组打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068593/