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;
}

解释

  1. 定义了一个函数escape,用来将字符串t拷贝到字符串s中,并在拷贝过程中将换行符和制表符转换成换码序列。函数中使用了一个switch语句来判断当前字符是换行符还是制表符,然后将相应的换码序列拷贝到s中。
  2. main函数中,首先使用fgets函数从控制台读取输入的字符串t,并使用strcspn函数将输入字符串中的换行符去除。
  3. 然后定义了一个字符数组s,用来存储转换后的字符串。
  4. 调用escape函数将输入的字符串转换成换码序列,并将结果存储在s中。
  5. 最后使用printf函数将转换后的字符串s输出到控制台上。

注意

本程序假设输入的字符串不超过50个字符,而转换后的字符串不超过100个字符。如果超过了这个限制,可能会导致溢出错误。


原文地址: https://www.cveoy.top/t/topic/o1BU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录