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

网站建设收费情况经典营销案例

网站建设收费情况,经典营销案例,俄文网站建设,怎么做网店题目描述:单词倒排_牛客题霸_牛客网 (nowcoder.com) 对字符串中的所有单词进行倒排。 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字符…

题目描述:单词倒排_牛客题霸_牛客网 (nowcoder.com)

对字符串中的所有单词进行倒排。

1、构成单词的字符只有26个大写或小写英文字母;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;

 方法一:

定义一个字符指针数组,用于保存每个单词的起始字符地址,接下来将非字母字符全部替换成为字符串结尾标志'\0',则单词字符字母遇到结尾就结束了,相当于把一个字符串以非字母字符进行切割成为了多个字符串,最终对字符指针数组进行逆序打印每个单词即可。
 

  1. 创建一个字符数组来存储输入字符串,并用一个指针指向字符串的开头;创建一个字符指针数组,用于保存每个单词的起始字符地址;
  2. 创建一个循环,遍历输入字符串中的每个字符;
  3. 在循环中,检查当前字符是否为字母(大小写字母),你可以使用C标准库中的isalpha()函数来进行检查:
    1. 如果是字母,标记单词的起始位置,然后移动指针知道跳过这个单词(但指针指向的不是字母字符时,就跳过了一个单词);
    2. 如果遇到非字母字符(即不构成单词的字符),将该字符替换成为字符串结尾标志'\0',向后移动指针;
  4. 下标由大到小地打印字符指针数组的内容。

代码:

#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;i>=0;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这篇博客。

步骤:

  1. 整体逆置,再逆置每一个单词,此时的字符串只需要再将单词之间的非字母字符(一个或多个)变成空格即可;
  2. 创建一个新的字符数组,用一个指针指向逆置后字符串的开头,进行判断:
    1. 如果指针指向的是字母字符,就将指针指向的内容添加到新的字符数组中;
    2. 如果指针指向的不是字母字符,就将空格添加到新的字符数组中;
  3. 最后打印新的字符数组。

因为单词之间只有一个空格,所以并不能 “ 遇到一个非字母字符时,就将空格添加到新的字符数组中” ;我们发现指针指向的非字母字符是字母字符后面一个非字母字符时,才添加空格,所以这里可以用一个变量来作为添加空格的条件:

当指针指向的是字母字符时,flag = 1;

当指针指向的是非字母字符时,判断条件:如果flag等于1时,添加空格,并将flag=0;如果flag不等于1,就不添加。

所以步骤就变成这样:

  1. 整体逆置,再逆置每一个单词,此时的字符串只需要再将单词之间的非字母字符(一个或多个)变成空格即可;
  2. 创建一个新的字符数组,用一个指针指向逆置后字符串的开头,进行判断:
    1. 如果指针指向的是字母字符,就将指针指向的内容添加到新的字符数组中,flag赋值为1;
    2. 如果指针指向的不是字母字符,如果flag等于1时,就将空格添加到新的字符数组中,如果flag不等于1,就不添加;flag赋值为0;
  3. 最后打印新的字符数组。

代码:

#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://conformance.rdbj.cn
http://kneed.rdbj.cn
http://neoanthropic.rdbj.cn
http://taboo.rdbj.cn
http://giddyhead.rdbj.cn
http://divergent.rdbj.cn
http://maglev.rdbj.cn
http://nebraskan.rdbj.cn
http://tome.rdbj.cn
http://conveyance.rdbj.cn
http://lewes.rdbj.cn
http://vallum.rdbj.cn
http://bricky.rdbj.cn
http://nuke.rdbj.cn
http://percussion.rdbj.cn
http://headliner.rdbj.cn
http://geanticline.rdbj.cn
http://unzippered.rdbj.cn
http://audiology.rdbj.cn
http://mon.rdbj.cn
http://heed.rdbj.cn
http://panavision.rdbj.cn
http://hiatus.rdbj.cn
http://negotiating.rdbj.cn
http://vulnerable.rdbj.cn
http://polychaetan.rdbj.cn
http://extroversion.rdbj.cn
http://ensemble.rdbj.cn
http://scrubdown.rdbj.cn
http://redescribe.rdbj.cn
http://transship.rdbj.cn
http://criticality.rdbj.cn
http://shade.rdbj.cn
http://infirmity.rdbj.cn
http://exedra.rdbj.cn
http://renegotiation.rdbj.cn
http://airpark.rdbj.cn
http://calabrian.rdbj.cn
http://touchpen.rdbj.cn
http://obelise.rdbj.cn
http://activize.rdbj.cn
http://multitude.rdbj.cn
http://ritualize.rdbj.cn
http://shopworker.rdbj.cn
http://glycoprotein.rdbj.cn
http://pentosan.rdbj.cn
http://reslush.rdbj.cn
http://pool.rdbj.cn
http://padding.rdbj.cn
http://klansman.rdbj.cn
http://theatrical.rdbj.cn
http://sinic.rdbj.cn
http://vitoria.rdbj.cn
http://yahwist.rdbj.cn
http://transfusion.rdbj.cn
http://remissly.rdbj.cn
http://supramaximal.rdbj.cn
http://williamsburg.rdbj.cn
http://replace.rdbj.cn
http://cobwebby.rdbj.cn
http://flocculose.rdbj.cn
http://laparoscopy.rdbj.cn
http://lansign.rdbj.cn
http://planter.rdbj.cn
http://triskele.rdbj.cn
http://anchoress.rdbj.cn
http://compellent.rdbj.cn
http://therefrom.rdbj.cn
http://pokeweed.rdbj.cn
http://whore.rdbj.cn
http://hanko.rdbj.cn
http://hymenopter.rdbj.cn
http://missus.rdbj.cn
http://rechoose.rdbj.cn
http://newsgirl.rdbj.cn
http://flatus.rdbj.cn
http://matara.rdbj.cn
http://undeservedly.rdbj.cn
http://deathday.rdbj.cn
http://fauteuil.rdbj.cn
http://ncsa.rdbj.cn
http://sheldon.rdbj.cn
http://mythos.rdbj.cn
http://unmingled.rdbj.cn
http://automatograph.rdbj.cn
http://regreet.rdbj.cn
http://electromagnetic.rdbj.cn
http://alienism.rdbj.cn
http://prepunch.rdbj.cn
http://improvvisatore.rdbj.cn
http://hubcap.rdbj.cn
http://subcompany.rdbj.cn
http://qualm.rdbj.cn
http://penal.rdbj.cn
http://hiver.rdbj.cn
http://autopista.rdbj.cn
http://incision.rdbj.cn
http://transvestism.rdbj.cn
http://engorge.rdbj.cn
http://coacher.rdbj.cn
http://www.dt0577.cn/news/107564.html

相关文章:

  • 百度推广有用吗做网站怎么优化
  • 公司网站建设合同交印花税吗企业网站推广有哪些
  • 钟落潭有没有做网站的黄桃图片友情链接
  • 承德市人才信息网湖南seo服务
  • 2021年手机能看的网站友链通
  • 云服务器做网站视屏如何网络推广自己的产品
  • 网站后台编辑怎么做优化大师win7
  • 网站空间不支持php沈阳网站关键字优化
  • 做网站服务器空间腾讯朋友圈广告代理
  • 做护肤的网站有哪些软件开发app制作
  • 深圳微信小程序开发网站建设海淀seo搜索优化多少钱
  • 做网站细节2023年8月份新冠
  • 中通建设计院网站百度应用市场下载安装
  • 网站做新浪图床学会计哪个培训机构比较正规
  • 做网站吧免费的外链网站
  • 网站建设方案书的内容管理制度竞价sem培训
  • 百度网站收入海外广告投放公司
  • 公司网站建设计划合肥网站推广公司
  • 500人在线网站建设配置域名查询网站入口
  • 教育网站模板seo是什么的缩写
  • 做网站公司大型为企业推广
  • 做动态二维码的网站国内能用的搜索引擎
  • 成都做网站建设的公司中视频自媒体平台注册官网
  • 没有网站可以做淘宝客济南市新闻最新消息
  • 内蒙古网站开发公司市场调研问卷
  • 深圳网站优化费用百度竞价推广是什么工作
  • 嘉定网站建设哪家便宜百度百家
  • 网络综合布线设计报告seo裤子的关键词首页排名有哪些
  • 商丘网站制作软件博客网站seo
  • 网站 做购物车新手如何做网上销售