c 转置字符串You are a so cheap man ->man cheap so a are You

解题思路:

1、将字符串转置

2、对转置后的字符串中单词转置

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<stdbool.h>
 5 //字符串转置
 6 void tranStr(const char *p,char *s)
 7 {
 8     int len = strlen(p);
 9     int i,j;
10     for(i=len,j=0; i>=0,j<len; i--,j++)
11     {
12         *(s+j) = *(p+i-1);
13     }
14     *(s+j) = ‘\0‘;
15 }
16
17 //判断是否为字母
18 bool isChar(char c)
19 {
20     bool isC = false;
21     if((c >=‘a‘ && c<=‘z‘)
22        ||(c>=‘A‘&&c<=‘Z‘))
23         isC = true;
24     return isC;
25 }
26 //转置单词
27 void tranWord(char *a,int count)
28 {
29     int i;
30     char temp;
31     for(i=0; i<count/2; i++)
32     {
33         temp = *(a+count-1-i);
34         *(a+count-1-i) = *(a+i);
35         *(a+i) = temp;
36     }
37 }
38
39 //对转置字符串中的单词转置
40 void tranStrWord(char *a)
41 {
42     int i=0,count=0,len;
43     for(i=0; i<len; i++)
44     {
45         if(isChar(*(a+i)))
46             count++;
47         else
48         {
49             tranWord(a+i-count,count);
50             count = 0;
51         }
52         if(count>0 && i==len-1)
53         {
54             tranWord(a+i-count+1,count);
55         }
56     }
57 }
58
59 int main(void)
60 {
61     char arr[50],brr[50];
62     scanf("%[^\n]", arr);   //遇到回车符结束,这样可以接收空格符
63     tranStr(arr,brr);
64     tranStrWord(brr);
65     puts(brr);
66     return 0;
67 }
时间: 2024-11-07 04:54:06

c 转置字符串You are a so cheap man ->man cheap so a are You的相关文章

转置字符串,其中单词内的字符需要正常

如题:转置一个字符串,需要其中的单词正常 例如: Given s = "the sky is blue",return "blue is sky the". 需要说明的是: 1.输入字符串可能会出现:前导空格,后置空格,要求输出的不能有前导空格和后置空格. 2.输入的语句中可能有两个单词之间出现多个空格,输出两个单词之间只能由一个空格. #include <iostream> #include <string> using namespace

Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)

I wrote a blog post about how LinkedIn uses Apache Kafka as a central publish-subscribe log for integrating data between applications, stream processing, and Hadoop data ingestion. To actually make this work, though, this "universal log" has to

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int

java基础知识小总结

在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int 型,因此,如果在程序中

词组习语3057组

superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 1 Anointing of the Sick British English 2 Civvy Street Clerk of the Closet 3 I mean I must say 4 I suppose so I will thank you to do something 5 Incoming mail server Lithium battery 6 M

侦测欺诈交易-数据初步探索

# 4.2.1 加载数据至R library(DMwR) ## Loading required package: lattice ## Loading required package: grid data(sales) head(sales) ##   ID Prod Quant   Val Insp ## 1 v1   p1   182  1665 unkn ## 2 v2   p1  3072  8780 unkn ## 3 v3   p1 20393 76990 unkn ## 4 v

随笔——CodeForces 588A Description

题目的意思是给你多组清单,每组包含所需食物的数量,和当天食物的单价,可以囤积食物.求花最少的钱完成清单. 解决这道题目的策略是从头到尾扫描一遍这些清单,再遇到更便宜的价格前都用之前最便宜的价格买食物,再更新当前最便宜的价格,以此类推下去. 数组a[ ]代表各天地食物需求 数组b[ ]代表各天地食物单价 变量cheap代表当前最便宜的单价是哪天 #include<cstdio> #include<cstring> #include<iostream> using name

典型程序实现代码汇总(1)

/** * 一个词组的单词如果是另一个词组单词的子集,就认为是个borad match,例如对于 "a b c","a", "b c" "c a" "a b c"都匹配,而 "a d"不匹配. * 现有一个搜索匹配模块,输入为用户的查询来匹配一个词组字典,找到字典中所有可以和输入broad match的词组,输出预定的词组整型序号. * 例如"cheap iphone in c

阿里笔试题(2015.4实习题)

1.用一个整形数组实现一个有固定上界为100个的堆栈,实现push,pop,size方法并编写代码对堆栈进行功能测试,语言使用Java,C#或C++均可 #include<stdio.h> #include<exception> template <typename T> class CStack{ public: CStack(){len=0;}; ~CStack(); void push(const T &element); T pop(); int siz