首页 > 其他分享 >3-2 编写一个函数 escape(s, t),将字符串 t 复制到字符串 s 中,并在复制 过程中将换行符、制表符等不可见字符分别转换为\n、\t 等相应的可见的转义字符序列。要 求使用 sw

3-2 编写一个函数 escape(s, t),将字符串 t 复制到字符串 s 中,并在复制 过程中将换行符、制表符等不可见字符分别转换为\n、\t 等相应的可见的转义字符序列。要 求使用 sw

时间:2023-07-30 13:12:08浏览次数:37  
标签:case arr 过程中将 ++ char 转义字符 escape 字符串

Archlinux

GCC 13.1.1  20230429

2023-07-30 12:57:46 星期日

 


点击查看代码
#include<stdio.h>


void escape( char s[], char t[] )
{
    int i, j;

    i = j = 0;

    while( t[i] != '\0' )
    {
        switch( t[i] )
        {
            case '\t': s[j]='\\'; j++; s[j]='t'; break;
            case '\n': s[j]='\\'; j++; s[j]='n'; break;
            default :  s[j]=t[i]; 
        }
        i++;
        j++;
    }

    s[j] = '\0';
}

void unescape( char s[], char t[] )
{
    int x, y;

    x = y = 0;

    while( t[x] != '\0' )
    {
        if( t[x] == '\\' ){
            switch( t[++x] )
            {
                case 'n': s[y] = '\n'; break;
                case 't': s[y] = '\t'; break;
            }
        }
        else
        {
            s[y] = t[x];
        }

        x++;
        y++;
        s[y] = '\0';
    }
}

int main()
{
    char arr[]= "xdq\tzs\n";
    char tmp[100];
    
    escape( tmp, arr );

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

    unescape( arr, tmp );

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


    return 0;
}


 


运行截图:

image

输出正确。

 


小白刚学习C语言,代码质量不高,欢迎评论。

标签:case,arr,过程中将,++,char,转义字符,escape,字符串
From: https://www.cnblogs.com/yuwu/p/17591309.html

相关文章

  • 【Json】字符串自动生成C#类
    前言最近做项目需要和其他项目组同事做对接,需要先把相关接口的出入参定义好,再去做具体的实现。这里,既然出入参都定义好了,何不根据json直接生成好相关的类、契约层、应用等代码呢。参考1、使用VS,编辑->选择性粘贴->将JSON粘贴为类2、使用Microsoft.JScript.dll类库,https://www.......
  • 2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数
    2023-07-29:给你一个由数字组成的字符串s,返回s中独特子字符串数量。其中的每一个数字出现的频率都相同。答案2023-07-29:大体步骤如下:1.初始化变量base为固定值1000000007,用于计算哈希码。2.创建一个空的哈希集合set,用于存储独特子字符串的哈希码。3.创建一个长度为10的整数数组cn......
  • 2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数
    2023-07-29:给你一个由数字组成的字符串s,返回s中独特子字符串数量。其中的每一个数字出现的频率都相同。答案2023-07-29:大体步骤如下:1.初始化变量base为固定值1000000007,用于计算哈希码。2.创建一个空的哈希集合set,用于存储独特子字符串的哈希码。3.创建一个长度为10的整......
  • C语言字符串的常用操作
    C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等。在C语言中,字符串是一种特殊的数据类型,它由一系列字符组成,以\0字符结尾。本文将介绍C语言中字符串的相关知识,包括字符串的定义、初始化、赋值、输入输出、比较、拼接、查找和替换等。一、字符......
  • c++字符串搜索之KMP
    classSolution{private:voidgetNext(int*arr,stringstr){intlen=str.length();arr[0]=0;intj=0;for(inti=1;i<len;i++){while(j>0&&str[i]!=str[j]){......
  • ORA-32004:为字符串实例指定的已过时或不推荐使用的参数
    错误信息【汉】ORA-32004:为字符串实例指定的已过时或不推荐使用的参数【英】ORA-32004:obsoleteordeprecatedparameter(s)specifiedforstringinstance例在启动实例时,提示此错误,但数据库正常启动。版本Oracle【11.2.0.3.0】、【11.2.0.1.0】、【11.2.0.4.0】原因服务器中spfi......
  • 686. 重复叠加字符串匹配
    给定两个字符串 a和b,寻找重复叠加字符串a的最小次数,使得字符串b成为叠加后的字符串a的子串,如果不存在则返回-1。注意:字符串"abc" 重复叠加0次是"",重复叠加1次是 "abc",重复叠加2次是 "abcabc"。 示例1:输入:a="abcd",b="cdabcdab"输出:3解释:a重复叠加三遍......
  • 导入表T1某字段截取的子字符串到另一张表T2
    第1章、字符串定位和截取--匹配字符的位置--从左往右第一次出现字符.log的位置SELECTINSTR('m/mc/kh.log','.log')FROMT1:--返回8--从右往左第一次出现/的位置SELECTINSTR('m/mc/kh.log','/',-1,1)FROMT1:--返回5--字符串截取,截取从3开始的6位字符......
  • 字符串压缩
    字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:"aabcccccaaa"输出:"a2b1c5a3"示例2:输入:"abbcc......
  • C# 字符串转码后操作二进制文件
    String转码后写入二进制文件,读二进制文件进行解码返回。publicclassBinaryClass{///<summary>///写二进制文件///</summary>///<paramname="binFile"></param>///<paramname="str">&......