gpt4 book ai didi

c - 如何根据C中的元素拆分字符串

转载 作者:行者123 更新时间:2023-11-30 20:58:39 25 4
gpt4 key购买 nike

我正在研究我的 C 项目并试图找出一些简单的东西。如何根据字符串的 char 元素拆分字符串。我知道这听起来很简单,而且我也知道确实如此。但我遇到了这种非常奇怪的情况,我不知道该怎么办。

代码:

char str[999] = "Hello World> This is a test";

char cursort[12];
for(int i = 0; i < 12; i++)
{
cursort[i] = str[i];
}

int u = 999 - 12;
char leftover[u];
for(int i = 1; i < u + 1; i++)
{
leftover[i - 1] = str[i + 11];
}

printf("%s\n", cursort);
printf("%s\n", leftover);
getchar();

输出:

Hello World>Hello World> This is a test
This is a test

我想要的只是前 12 个字符位于一行,其余字符位于单独的行。

最佳答案

好的,首先,我已经删除了你的动态数组。接下来,为了清晰起见,我尝试保留尽可能多的代码,同时通过注释显示发生的情况。

int main(void)
{
char str[999] = "Hello World> This is a test";

// Make a string for the first 12 elements.
char cursort[13];
for(int i = 0; i < 12; i++)
{
cursort[i] = str[i];
}

// Terminate it.
cursort[12] = '\0';

// Make an array for the remaining data on the stack
// Size is 12 less than original plus one for terminator. This should be a constant or a #define
char leftover[999 - 12 + 1];

// Copy str into leftover offset by 12.
for(int i = 12; i<999; i++)
{
leftover[i - 12] = str[i];
}

// Make sure it is terminated.
leftover[999] = '\0';

// Print it
printf("%s\n", cursort);
printf("%s\n", leftover);
getchar();

return 0;
}

最大的变化是我如何设置你的第二个循环。我还要补充一点,像这样进行字符串操作非常容易出错。您最好使用内置例程来处理此问题。

关于c - 如何根据C中的元素拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com