我如何使用For Loop初始化值开始取决于条件(k =(Char [i] ==''?i-1:i); j <k; j ++,k--)

时间:2019-08-02 17:19:35

标签: c

enter image description here

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

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循环,因此最后一个单词永不反转