如何用新行替换 space?

How do I replace a space with a new line?

如何使用 C 将字符串中的 space 替换为换行符 ("\n")?

#include <stdio.h>
#include <string.h>
#define SIZE 50

int main(int argc, char **argv)
{
     char string[] = "this is my string";
     size_t length, c;

     length = strlen(string);

     for(c = 0; c < length; ++c)
     {
          if(string[c] == ' ')
          {
               string[c] = '\n';
          }    
     }

     printf("%s\n", string);

     return 0;
}

简单程序:

int c;//return of fgetc type is int

while(EOF!=(c=fgetc(file)))
    putchar(c == ' ' ? '\n ' : c);

你的问题很含糊。

这是一个简单的过滤器,用于将输入流中的所有 space 更改为换行符:

#include <stdio.h>

int main(void) {
    int c;

    while ((c = getchar()) != EOF) {
        putchar(c == ' ' ? '\n' : c);
    }
    return 0;
}

编辑:

如果您对修改字符串感兴趣,您应该知道字符串文字是不可修改的,尝试修改它们具有未定义的行为。

您应该找到 space 个字符并在相应的偏移量处存储换行符 ('\n')。

您可以使用指针和 strchr() 函数:

char *p = strchr(string, ' ');
if (p != NULL) {
    *p = '\n';
}

循环处理所有 spaces:

for (char *p = string; (p = strchr(p, ' ')) != NULL; p++) {
    *p = '\n';
}

或者您可以使用带有索引变量的 for 循环:

for (size_t i = 0; string[i] != '[=13=]'; i++) {
    if (string[i] == ' ') {
        string[i] = '\n';
        //break;   // uncomment the break if you want a single space changed
    }
}