📅  最后修改于: 2023-12-03 14:51:47.687000             🧑  作者: Mango
在 C 编程语言中,要从字符串中删除 \n,可以使用许多不同的技术。以下是一些方法:
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!
我们可以使用 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!
另一种方法是使用指针,遍历字符串中的每个字符,如果遇到 \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。