for(k = (Char[i] ==' '? i-1 :i);j<k ; j++,k--)
对于循环k,如果char[i] = ' '
得到空间,则初始化值被赋值,然后赋给i - 1
的k值,否则,k值是起始k = i
的值,如果数组char的char得到我的第一个条件是有效空格,但未获得空格时,不会分配k值k = i
。我该怎么解决?
我的第一个条件始终有效:k = i-1
,
答案 0 :(得分:0)
首先,我假设您正在尝试反转字符串中的每个单词。如果是这样,它将起作用:
添加:
#include <string.h>
并更改为:
for (i = j = k = 0; i <= strlen(a); i++) {
if (a[i] == ' ' || a[i] == '\0')
{
for (k = i-1 ; j < k; j++, k--) {
temp = a[j];
a[j] = a[k];
a[k] = temp;
}
j = i + 1;
}
}
当您击中空字符时,您当前的代码将退出for循环,因此最后一个单词永不反转