【发布时间】:2017-10-20 12:51:35
【问题描述】:
我需要帮助来编写一个代码,该代码获取一个未知大小的数组并对其进行冒泡排序,空格之间的每个单词,(只有一个空格) 例如
坏 dba = abd abd; 我编写了一个获取已知大小的字符串的代码,我尝试修改它,但我想不出任何东西。 提前致谢。! 到目前为止我的代码是:
gets(strB);
do
{
flag = 0;
for
(q = 0; 'dont know what to put here'-J ; q++) {
if
(strB[q] > strB[q + 1])
{
// Swap
temp2 = strB[q];
strB[q] = strB[q + 1];
strB[q + 1] = temp2;
flag = 1;
}
}
j++;
} while
(flag != 0);
puts(strB);
【问题讨论】:
-
您是否有一些关于数组结束位置的指示符,例如它是否由
NULL或EOF终止? -
@alexdr3x 首先你应该编写循环来确定每个子字符串的开始和结束,然后对每个这样的子字符串应用冒泡排序。
-
strlen()fromstring.h可能会有所帮助。顺便说一句,你不应该使用gets(),它有不可避免的缓冲区溢出风险,在 C99 中已弃用并从 C11 中删除。 -
啊,您必须对每个单词进行排序,而不是对整个字符串进行排序。然后,
strlen()将提供较少的帮助。您应该查看字符串中的每个字符,然后搜索空格字符和字符串结尾。 -
@alexdr3x 查看我的回答。
标签: c arrays string algorithm bubble-sort