C语言字符串转义:换行符和制表符转换
C语言字符串转义:换行符和制表符转换
本程序使用C语言编写一个函数,将字符串中的换行符和制表符转换为对应的转义序列('\n'和'\t')。程序还包括一个示例,演示如何使用该函数将输入字符串中的换行符和制表符进行转义。
代码
#include <stdio.h>
#include <string.h>
void escape(char s[], char t[]) {
int i, j;
for (i = 0, j = 0; t[i] != '\0'; i++) {
switch (t[i]) {
case '\n':
s[j++] = '\\';
s[j++] = 'n';
break;
case '\t':
s[j++] = '\\';
s[j++] = 't';
break;
default:
s[j++] = t[i];
break;
}
}
s[j] = '\0';
}
int main() {
char t[51];
fgets(t, sizeof(t), stdin);
t[strcspn(t, "\n")] = '\0'; // Remove trailing newline from input
char s[101];
escape(s, t);
printf("%s\n", s);
return 0;
}
解释
- 定义了一个函数
escape,用来将字符串t拷贝到字符串s中,并在拷贝过程中将换行符和制表符转换成换码序列。函数中使用了一个switch语句来判断当前字符是换行符还是制表符,然后将相应的换码序列拷贝到s中。 - 在
main函数中,首先使用fgets函数从控制台读取输入的字符串t,并使用strcspn函数将输入字符串中的换行符去除。 - 然后定义了一个字符数组
s,用来存储转换后的字符串。 - 调用
escape函数将输入的字符串转换成换码序列,并将结果存储在s中。 - 最后使用
printf函数将转换后的字符串s输出到控制台上。
注意
本程序假设输入的字符串不超过50个字符,而转换后的字符串不超过100个字符。如果超过了这个限制,可能会导致溢出错误。
原文地址: https://www.cveoy.top/t/topic/o1BU 著作权归作者所有。请勿转载和采集!