当前位置: 首页 > news >正文

在哪里创建网站平台成都设计公司尹超简历

在哪里创建网站平台,成都设计公司尹超简历,营销型网站建设ppt模板下载,台州网站的优化前言 NWAFU 2021阶段二 D 一、题目描述 题目描述 在一个字符串中,设置了由‘/’前导字符和某些特定字母构成的转义子字符串,如“/s”、“/f”、“/c”等用于表示特殊表情符号。现要求编写一个函数,将给定字符串中的转义字符串转换为表情字…

前言

NWAFU 2021阶段二 D


一、题目描述

题目描述

在一个字符串中,设置了由‘/’前导字符和某些特定字母构成的转义子字符串,如“/s”、“/f”、“/c”等用于表示特殊表情符号。现要求编写一个函数,将给定字符串中的转义字符串转换为表情字符串,同时其他字符保持不变,然后返回转换后的字符串首地址。需要转义的符号串仅有以下4个:

原字符串中的特殊符号子串要转成的表情串含义
/s^_^   微笑  
/f@_@   困惑  
/cT_T  哭泣
/z^_~  眨眼

函数原型规定为: int ConvertEmoji(char **dst,const char *src);
其中dst是指向转换后的带有表情串的字符串指针的指针,src是指向需要转换的原始字符串指针。函数返回的是转换后的字符串的长度。
特别说明,转换后的字符串长度长短不一,所以需要在函数中根据需要给dst所指向的转换目标字符串分配内存。函数调用结束后,需自行释放该内存。
提交时,只提交ConvertEmoji()及其调用的自定义函数的实现代码

#include <stdio.h>          //注意:原内容h后面多打了空格,需要删除
#include <stdlib.h>
#include <string.h>#define N 64int ConvertEmoji(char **dst, const char *src);int main()
{char str[N], *p = NULL;int len, i = 0;fgets(str, N, stdin);while(i < strlen(str)) {if (str[i]=='\n') { str[i]='\0';break;}i++;}len=ConvertEmoji(&p, str);printf("(%d)%s\n", len, p);free(p);return 0;
}

二、设计步骤

这道题的核心思路与“删除子串”一题大同小异,都是通过字符串的移动实现对其的修改操作。我们引入两个子函数,分别用来计算操作后字符串的长度和对字符串进行唯一操作。OperateArr()函数通用。

题目中有一句话:特别说明,转换后的字符串长度长短不一,所以需要在函数中根据需要给dst所指向的转换目标字符串分配内存。函数调用结束后,需自行释放该内存。

事实上并不需要,如果我们将dst作为p对应的二级指针并在子函数中释放了内存,那么p字符串就无法正常输出了,而主程序的最后free(p)会释放p的内存空间,因此不会出现内存泄漏的问题。

该题第六个测试点是{'\n'},如果用strlen()函数会返回1,而OJ系统认为其长度为0,因此我们在程序中添加一个判断条件。

代码实现:

#define EmojiSize 3       //Emoji字符串的长度
#define BaseSize 2        //转义字符串的长度
const int deltSize = EmojiSize - BaseSize;       //差值int ConvertEmoji(char **dst, const char *src);
int Count_tar(char base[],const char *p);
void OperateArr(char *Arr,int len,int opt_len);
int ConvertEmoji(char **dst, const char *src)
{int i,j,h;int len = strlen(src);char bas_ch[5] = {'s','f','c','z'};          //在字符串中查找的对象char bas_tar[4][4] = {"^_^","@_@","T_T","^_~"}; //用于替换的子串int dstSize = len + deltSize * Count_tar(bas_ch,src);char *temp = (char *)malloc(dstSize * sizeof(char));if(*src == '\n')  //别问,问就是6.out{**dst = '\0';return 0;}strcpy(*dst,src); //拷贝int flag = 0;     //已转换的次数i = 0;while(i < dstSize){if(*(*dst+i) == '/'){for(j = 0;j < 4;j++){if(*(*dst+i+1) == bas_ch[j]){flag++;OperateArr((*dst+i+2),len+flag-i-2,deltSize); //使操作部分后面的子字符串位移for(h = 0;h < EmojiSize;h++)        //字符串替换{*(*dst+i+h) = bas_tar[j][h];}break;}}}i++;}return dstSize;
}int Count_tar(char base[],const char *p)   //计算操作后的字符串长度
{int i = 0,j,count = 0;while(*(p+i) != '\0'){if(*(p+i) == '/'){for(j = 0;j < 4;j++){if(*(p+i+1) == base[j]){count++;break;}}}i++;}return count;
}void OperateArr(char *Arr,int len,int opt_len)   //字符串位移函数
{int i,j;char temp;for(i = 0;i < opt_len;i++){temp = *(Arr + len - 1);for(j = len - 1;j > 0;j--){*(Arr+j) = *(Arr + j - 1);}*Arr = temp;}
}

总结

NWAFU 2021阶段二 D

http://www.yayakq.cn/news/699920/

相关文章:

  • 广州市律师网站建设公司五百亿建站模板
  • 各大网站提交入口《借妻》完整版观看
  • 长春网站制作营销方案模板ppt
  • 泉州野外拓展网站建设游戏类网页设计
  • 网站开发工具设备要求用fullpage做的网站
  • 自动生成ui界面南京seo顾问
  • 易名网站备案广州企业所得税怎么征收
  • 决定网站打开的速度天津建站费用
  • 传统文化传播公司网站建设贵阳网站设计阳光创信好吗
  • 精品课程网站的设计与建设要求互联网服务平台是什么
  • 广州南沙区建设和交通局网站asp网站后台不能编辑
  • 如何在局域网建立网站wordpress安装完无法登录
  • 电商网站建设 数商云郴州吧百度贴吧
  • 全国好的深圳网站设计北京有什么网上推广的网站吗
  • 淄博周村学校网站建设定制正规网站建设团队是什么
  • 河北建设厅查询网站wordpress批量生成文章
  • 自己做网站排名好吗浙江高端网站建设
  • 佛山网站建设找方维网络北京seo技术交流
  • h5页面和小程序的页面有什么区别微软优化大师
  • hostgator wordpress主机安徽网络推广和优化
  • 网站建设那里网站换主机
  • 帝国网站管理系统安装教程微信公众平台申请小程序
  • 网站搜索系统店面设计费计入什么科目
  • 企业网站建立平台在线制作电子公章免费
  • 丰台网站制作公司网站开发相关书籍
  • 蓝色网站配色方案帝国网站采集管理怎么做
  • 品牌网站建设k小蝌蚪hulu网站在中国做内容吗
  • 莲湖免费做网站wordpress怎么自己写代码
  • 现在门户网站建设还有人弄吗成都网站制作公司电话
  • 国家建设材料检测网站wordpress 帝国 seo