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

鞋子网站建设规划书做网站几百块可信吗

鞋子网站建设规划书,做网站几百块可信吗,北湖建设局网站,广州网络推广有限责任公司题目描述#xff1a;单词倒排_牛客题霸_牛客网 (nowcoder.com) 对字符串中的所有单词进行倒排。 1、构成单词的字符只有26个大写或小写英文字母#xff1b; 2、非构成单词的字符均视为单词间隔符#xff1b; 3、要求倒排后的单词间隔符以一个空格表示#xff1b;如果原字符…题目描述单词倒排_牛客题霸_牛客网 (nowcoder.com) 对字符串中的所有单词进行倒排。 1、构成单词的字符只有26个大写或小写英文字母 2、非构成单词的字符均视为单词间隔符 3、要求倒排后的单词间隔符以一个空格表示如果原字符串中相邻单词间有多个间隔符时倒排转换后也只允许出现一个空格间隔符 4、每个单词最长20个字母 方法一 定义一个字符指针数组用于保存每个单词的起始字符地址接下来将非字母字符全部替换成为字符串结尾标志\0则单词字符字母遇到结尾就结束了相当于把一个字符串以非字母字符进行切割成为了多个字符串最终对字符指针数组进行逆序打印每个单词即可。   创建一个字符数组来存储输入字符串并用一个指针指向字符串的开头创建一个字符指针数组用于保存每个单词的起始字符地址创建一个循环遍历输入字符串中的每个字符在循环中检查当前字符是否为字母大小写字母你可以使用C标准库中的isalpha()函数来进行检查 如果是字母标记单词的起始位置然后移动指针知道跳过这个单词但指针指向的不是字母字符时就跳过了一个单词如果遇到非字母字符即不构成单词的字符将该字符替换成为字符串结尾标志\0向后移动指针下标由大到小地打印字符指针数组的内容。 代码 #include stdio.h #include ctype.h int main() {char arr[10001] {0};char* dst[10001] {NULL};gets(arr);char* move arr;int count 0;while(*move ! \0){// 当遇到字母字符时if(isalpha(*move)){//记录单词的起始地址dst[count] move;// 跳过这个单词找到非字母字符while(*move ! \0 isalpha(*move)){move;}continue;}// 当遇到非字母字符时*move \0;move;}// 逆序打印for(int i count-1;i0;i--){printf(%s , dst[i]);}return 0; } 注 在跳过一个单词的循环时如果只是下面这种形式可能会造成越界访问。例如字符串为 “I am a student\0”。 while(isalpha(*move))move; 在跳过最后一个单词 student 时指针会指向 ’\0‘跳出循环进行下一步*move ’\0‘ move即 ’\0‘  ’\0‘ move。这时move会指向字符串 ’\0‘ 后面一个位置然后再一次进行外循环判断条件 *move ! \0对move进行解引用此时就发生了越界访问。 所以正确的写法如下 if(isalpha(*move)) {//记录单词的起始地址dst[count] move;// 跳过这个单词找到非字母字符while(*move ! \0 isalpha(*move)){move;}continue; } 这样在跳过最后一个单词 student 时指针指向 ’\0‘跳出循环执行continue使下一步*move ’\0‘ move不被执行然后再一次进行循环判断 *move ! \0\0 ! \0条件为假结束循环。 而且添加 continue 不会影响普通情况例如当跳过单词 am 时move指向空格执行continue进行外循环判断条件  *move ! \0 ’ ‘ ! \0条件为真进入循环判断空格是否为字母字符--不是字母字符执行 *move \0; move;  方法二 因为之前做过 单词逆置 这个题目整体逆置再逆置每一个单词所以我用了这种思路不过这种方法比较暴力。如果你想要了解 单词逆置 的话可以看一下http://t.csdn.cn/pwNTt这篇博客。 步骤 整体逆置再逆置每一个单词此时的字符串只需要再将单词之间的非字母字符一个或多个变成空格即可创建一个新的字符数组用一个指针指向逆置后字符串的开头进行判断 如果指针指向的是字母字符就将指针指向的内容添加到新的字符数组中如果指针指向的不是字母字符就将空格添加到新的字符数组中最后打印新的字符数组。 因为单词之间只有一个空格所以并不能 “ 遇到一个非字母字符时就将空格添加到新的字符数组中” 我们发现指针指向的非字母字符是字母字符后面一个非字母字符时才添加空格所以这里可以用一个变量来作为添加空格的条件 当指针指向的是字母字符时flag 1 当指针指向的是非字母字符时判断条件如果flag等于1时添加空格并将flag0如果flag不等于1就不添加。 所以步骤就变成这样 整体逆置再逆置每一个单词此时的字符串只需要再将单词之间的非字母字符一个或多个变成空格即可创建一个新的字符数组用一个指针指向逆置后字符串的开头进行判断 如果指针指向的是字母字符就将指针指向的内容添加到新的字符数组中flag赋值为1如果指针指向的不是字母字符如果flag等于1时就将空格添加到新的字符数组中如果flag不等于1就不添加flag赋值为0最后打印新的字符数组。 代码 #include stdio.h #include string.h #include ctype.h void reverse(char* left, char* right) {while (left right){char temp *left;*left *right;*right temp;left;right--;} } int main() {char arr[10000] { 0 };gets(arr);int len strlen(arr);reverse(arr, arr (len - 1));//逆置整体char answer[30] { 0 };int flag 0;char* dst answer, * move arr;// 逆置单词char* start arr;char* end start;while (*start ! \0)//当*start等于\0时停止逆序{while (isalpha(*end) *end ! \0)//注意最后一个单词的后面不是空格{end;}reverse(start, end - 1);if (*end ! \0)//如果最后一个单词在向后移动时会导致start跳过\0从而导致死循环end;start end;}// 将字符添加到新的字符数组中while (*move ! \0){if (isalpha(*move)){*dst *move;dst;flag 0;}else{if (flag 0){*dst ;dst;flag 1;}}move;}*dst \0;puts(answer);return 0; } 今天的分享就到这里了如果你感觉这篇博客对你有帮助的话就点个赞吧感谢感谢……
http://www.dnsts.com.cn/news/280340.html

相关文章:

  • 网站建设 风险论坛制作
  • 什么网站比较容易做权重精选合肥网站建设
  • 江门移动网站建设多少钱系统优化大师官方下载
  • 做一个网站花多少钱怎样编辑网站标题
  • 淄博网站制作定制技术平价建网站
  • WordPress页面增加底部栏企业seo外包
  • 舟山市建设局网站官网mini1cn下载迷你世界登录
  • 汕头网站建站公司在线logo生成免费
  • 付网站建设费用 会计科目黑科技网站
  • 吉恩聊城网站建设佛山网站建设 骏域
  • 技能网站建设项目需求网站的开发和建设有什么区别
  • 网站开发要服务器吗怎么把做的网站发布
  • 网站定制一般价格多少官方网站下载免费app
  • 企业网站建设的基本流程重庆建筑工程信息管理平台
  • 网站建设 项目书 框架温州做网站哪家比较好
  • 没有服务器怎样做网站php网站集成支付宝接口
  • 曲阳有没有做网站里制作网线
  • 呼和浩特做网站的公司辽宁建设工程信息网直接发包工程
  • 泰州市网站建设制作做企业形象网站
  • 广州做餐饮的招聘网站wordpress 团购 主题
  • 黄石专业网站建设推广多网站后台问题
  • 深圳集团网站建设公司今天最新新闻摘抄
  • 网站建网站建设企业网站建设价格与哪些
  • 无锡网站关键词推广开发一个进销存app需要多少钱
  • 网站怎么挣钱成都住建局官网app
  • 建设工程的招标网站有哪些30岁学编程还能找到工作吗
  • 杭州网站建设岗位薪资电子商务seo是指什么意思
  • 北京专业网站建设大全电商网站排行
  • 购物网站源码下载如何利用网站开发国外客户
  • 建网站需要买些什么品牌建设三年行动计划