c - printf 在我的函数中途停止工作

标签 c

我的代码如下:

#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 为常量并获取主函数中使用的输入字符串的长度。 (稍后我将使用该长度做更多的事情)所以我所做的是启动两个 for 循环,通过递增它来获取 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

关于c - printf 在我的函数中途停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914645/

相关文章:

c - Linux C - 子进程认为管道是空的

c++ - 进行变换的最快方法(移动、旋转、缩放)

c - 取消引用该指针给我-46,但我不知道为什么

python - 库例程和协程

c - 找到第一个回文单词的开头

c - 函数中声明的局部变量不起作用

c++ - 下推解析器扫描标记还是单个字符?

c - 为什么 #line 指令没有在 clang 的 false #if 中处理?

c++ - #error inside of#define - 可能在 C++ 中(如果未定义某些常量,则在调用宏 MyMacro 时生成错误)?

c - 2 个 printf() 之间的程序段错误