gpt4 book ai didi

c++ - 我试图在 char 数组的中间添加一个空格。不确定如何正确移动它

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:48 24 4
gpt4 key购买 nike

我正在检查数组中的句末,然后确保句末后有一个空格。我试图将所有数组 1 向右移动以为空格腾出空间。 userPara[] 只是一个用户输入的字符数组。我不能使用字符串,但可以使用字符串类

void add_whitespace(char userPara[])
{
int len = strlen(userPara);
int newlen = len + 1;
char temp1;
char temp2;
char whitespace = ' ';
for (int i = 0; i < newlen; i++) {
if (userPara[i-1] == '.' || userPara[i-1] == '?' || userPara[i-1] ==
'!' && userPara[i] != ' ') {
temp1 = userPara[i];
userPara[i] = whitespace;
for (int j = i; j < newlen; j++) {
temp2 = userPara[j+1];
userPara[j+1] = temp1;
temp1 = userPara[j+2];
userPara[j+2] = temp2;
cout << userPara << endl; //This is for testing
}
}
}
}

它似乎只是将第一个 [j+1] 元素向右移动,直到该元素从字符串中移出

最佳答案

因为在你的内部 for 中你向右移动了 userPara 的两个元素,你应该将计数器增加 2(j+=2 不是j++)。以下是您的一个示例:

for (int i = 0; i < n; i++) {
if(userPara [i] == '.')
{
temp1 = userPara [i];
userPara [i] = ' ';
for (int j = i+1; j < n; j+=2)
{
temp2 = userPara [j];
userPara [j] = temp1;
temp1 = userPara [j+1];
userPara [j+1] = temp2;
}
break;
}

}

正如评论中所讨论的那样,请注意这种方法可能存在关于这种盲目增加数组的问题。

关于c++ - 我试图在 char 数组的中间添加一个空格。不确定如何正确移动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54523562/

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