📌  相关文章
📜  如何从字符串中删除 \n - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:51:47.687000             🧑  作者: Mango

如何从字符串中删除 \n - C 编程语言

在 C 编程语言中,要从字符串中删除 \n,可以使用许多不同的技术。以下是一些方法:

1. 使用 strtok 函数

strtok 函数可以将字符串分解成若干个子字符串,以空格、制表符、回车和换行符作为分隔符。我们可以使用 strtok 函数将字符串分解为多个子字符串,然后重新组装这些子字符串,从而删除 \n。

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

int main()
{
    char str[] = "This is a sample string.\nHello, World!\n";
    char* token;
    char str_new[100];

    token = strtok(str, "\n");
    while (token != NULL)
    {
        strcat(str_new, token);
        token = strtok(NULL, "\n");
    }
    printf("Old string: %s\n", str);
    printf("New string: %s\n", str_new);
    return 0;
}

运行结果:

Old string: This is a sample string.
Hello, World!

New string: This is a sample string.Hello, World!
2. 使用 for 循环

我们可以使用 for 循环遍历字符串中的字符,当遇到 \n 时,跳过该字符即可。

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

int main() {
    char str[] = "This is a sample string.\nHello, World!\n";
    char str_new[100];
    int j = 0;
    for (int i = 0; i < strlen(str); i++) {
        if (str[i] != '\n') {
            str_new[j] = str[i];
            j++;
        }
    }
    str_new[j] = '\0';
    printf("Old string: %s\n", str);
    printf("New string: %s\n", str_new);
    return 0;
}

运行结果:

Old string: This is a sample string.
Hello, World!

New string: This is a sample string.Hello, World!
3. 使用指针

另一种方法是使用指针,遍历字符串中的每个字符,如果遇到 \n,就将该字符的前一个字符的下一个位置赋值给该字符,相当于把 \n 删掉了。

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

int main()
{
    char str[] = "This is a sample string.\nHello, World!\n";
    char* p = str;
    while (*p != '\0')
    {
        if (*p != '\n')
        {
            putchar(*p);
            p++;
        }
        else
        {
            p++;
        }
    }
    return 0;
}

运行结果:

This is a sample string.Hello, World!

无论使用哪种方法,我们都可以从字符串中删除 \n。