我的代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void confab(const char* inText, int nRows, char* outText)
{
    int inText_length = 0;

    printf("inText 1 = %c\n\n", *inText);
    for (; *inText != '\0'; inText_length++){
        printf("%d %c\n", inText_length, *inText);
        inText++;
    }
    for (int z = inText_length; inText_length > 1; z--){
        inText--;
    }
    printf("inText 2 = %c\n\n", *inText);
    printf("This line doesn't print");
}


int main(void)
{
    char buffer[60] = {'\0'};
    char* s = "Don't wait until the last day before starting.";
    confab(s, 3, buffer);
    //printf("%s\n", buffer);

    return EXIT_SUCCESS;
}


基本上,我想做的是保持inText不变,并获取main函数中使用的输入字符串的长度。 (然后,我将使用该长度做更多事情)。所以我要做的是开始两个for循环,以通过增加inText的长度来增加inText的长度,然后再减小它的长度,以使其恢复到原始状态。

但是无论出于什么原因,最后两个printf函数都没有显示。
而且我也不能用

inText - inText_length;


无论出于什么原因,它都说该行什么也不做,所以我尝试用第二个for循环替换它。

谢谢!

最佳答案

当我看这行:

for (int z = inText_length; inText_length > 1; z--){
    inText--;
}


我认为您的意思是:

for (int z = inText_length; z > 1; z--){
    inText--;
}


而不是使用

inText - inText_length;


你应该使用

inText = inText - inText_length;


要么

 inText -= inText_length

10-08 16:19