这是C语言把一串java字符串倒序输出倒序的代码,可就是输出不了,help

问题补充&&
本页链接:
printf(&%s\%s\n&,strrev(str));vc++6,str);
printf(&quot&#47.h&#include &/#include &//void main(void){
char str[]=&abcd&.0加上这一行.#include &stda**.h&string.h&n&
White_MouseYBZ &
•••••
*q = s+n-1;
*p = *q:char *inverse(char * s){
int n = strlen(s);
while (p &= q)
temp = *p貌似没有现成的函数,只能自己写一个了;
++p,很简单;
char *p = s,
我以前写了这个程序。略粗糙 源代码: #include &stdio.h&#include &string.h&#define ARR_SIZE 80
//字符串最大长度int Inverse(char a[]);void main(void){ char str[ARR_SIZE]={0}; printf(&P199 6.12\n&);
//题号 printf(&---------------------Inversed sequence---------------------\n&); printf(&\nPlease enter a charstring:\n\n&); gets(str);
//输入一个字符串 Inverse(str);
//调用函数逆序存放}int Inverse(char a[]){ char b[ARR_SIZE]={0}; maxsize=strlen(a)-1;
//得到最后一个字符位置 for (i=0;i&strlen(a);i++)
//依次交换存放 {
b[maxsize]=a[i];
maxsize--; } printf(&\nThe changed result is:\n\n&); puts(b);
//输出交换存放结果 printf(&\n&);}
void reverse(char str[]){
int len = strlen(str), i,
for(i = 0; i & (len && 1); i++)
temp = str[i];
= str[len - i - 1];
str[len - i - 1] =
猜你感兴趣2.5.1字符常量;字符常量是指用一对单引号括起来的一个字符;在CC语言中,字符是按其所对应的ASCII码值来;注意字符'9'和数字9的区别,前者是字符常量,后;由于C语言中字符常量是按整数(short型)存储;字符串常量是指用一对双引号括起来的一串字符;等;要特别注意字符串与字符串常量的区别,除了表示形式;转义字符是C语言中表示字符的一种特殊形式;字符常量
2.5.1字符常量 字符常量是指用一对单引号括起来的一个字符。如‘a’,‘9’,‘!’。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号(’)和反斜杠(\\),它们特有的表示法在转义字符中介绍。 在CC语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。例如:字符ASCII码值(十进制)!A65B66a97b98 注意字符'9'和数字9的区别,前者是字符常量,后者是整型常量,它们的含义和在计 算机中的存储方式都截然不同。 由于C语言中字符常量是按整数(short型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算。例如: 'a'-32;/*执行结果97-32=65*/ 'A'+32;/*执行结果65+32=97*/ '9'-9;/*执行结果57-9=48*/ 2.5.2字符串常量 字符串常量是指用一对双引号括起来的一串字符。双引号只起定界作用,双引号括起的字符串中不能是双引号(\)和反斜杠(\\),它们特有的表示法在转义字符中介绍。例如: \,\等。C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL,常用\\0表示。因此在程序中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。例如,字符串China有5个字符,作为字符串常量\存储于内存中时,共占6个字节,系统自动在后面加上NULL字符,其存储形式为:
要特别注意字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字符'A'只占1个字节,而字符串常量\占2个字节。 2.5.3转义字符 转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('),用于表示字符串常量的双撇号(\)和反斜杠(\\)等。转义字符用反斜杠\\后面跟一个字符或一个八进制或十六进制数表示。表2-4给出了C语言中常用的转义字符。
字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。 在C程序中使用转义字符\\ddd或者\\xhh可以方便灵活地表示任意字符。\\ddd为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值。\\x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制ASCII码值。 使用转义字符时需要注意以下问题: :1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。 。2)\\v垂直制表和\\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。3)在C程序中,使用不可打印字符时,通常用转义字符表示。 2.5.4符号常量 C语言允许将程序中的常量定义为一个标识符,称为符号常量。符号常量一般使用大写英文字母表示,以区别于一般用小写字母表示的变量。符号常量在使用前必须先定义,定义的形式是: #define 例如: #definePI3.#defineTRUE1 1#definrFALSE0 0#defineSTAR'*' 这里定义PI、TRUE、FLASE、STAR为符号常量,其值分别为3.,0,'*'。 #define是C语言的预处理命令,它表示经定义的符号常量在程序运行前将由其对应的常量替换。 定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改。因此在定义符号常量名时,应使其尽可能地表达它所代表的常量的含义,例如前面所定义的符号常量名PI(π),表示圆周率3.1415926。此外,若要对一个程序中多次使用的符号常量的值进行修改,只须对预处理命令中定义的常量值进行修改即可。 2.5.5字符变量 字符变量用来存放字符常量,注意只能存放一个字符,不要以为在一个字符变量中可以放字符串。字符变量的定义形式如下: charc1,c2; ; 它表示c1和c2为字符变量,各放一个字符。因此可以用下面语句对c1、c2赋值: c1='a';c2='b';
c1、c2被指定为字符变量。但在第3行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98。第4行将输出两个字符。\是输出字符的格式。程序输出:
它的作用是将两个小写字母转换为大写字母。因为'a'的ASCII码为97,而'A'为65,'b'为98,'B'为66。从ASCII代码表中可以看到每一个小写字母比大写字母的ASCII码大32。即'a'='A'+32。
C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外,C还有一些特殊的运算符,用于完成一些特殊的任务。 2.6.1算术运算符 表2-5列出了C语言中允许的算术运算符。在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“/”被用于整数或字符时,结果取整。例如,在整数除法中,10/3=3。 一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。
最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。 2.6.2自增和自减 C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的―自增和自减运算符,++和--。运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x; 自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例: x=10; ;y=++x; 此时,y=11。如果程序改为: x=10;y=x++; 则y=10。在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码 要快得多,所以尽可能采用加1或减1运算符是一种好的选择。 。下面是算术运算符的优先级: :最高++、- -- -(一元减) *、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言 处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。 2.6.3关系和逻辑运算符 关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。关系和逻辑运算符概念中的关键是True(真)和Flase(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1(见表2-6)。
表2-6给出于关系和逻辑运算符,下面用1和0给出逻辑真值表。关系和逻辑运算符的优先级比算术运算符低,即像表达式10>1+12的计算可以假定是对表达式10>(1+12)的计算,当然,该表达式的结果为Flase。在一个表达式中允许运算的组合。例如: 10>5&&!(10<9)||3<=4 这一表达式的结果为True。 。下表给出了关系和逻辑运算符的相对优先级: :最高! ! >= <= === != =&& 最低||同算术表达式一样,在关系或逻辑表达式中也使用括号来修改原计算顺序。切记,所有关系和逻辑表达式产生的结果不是0就是1,所以下面的程序段不仅正确而且 将在屏幕上打印数值1。 ;x=100; ;printf(\2.6.4位操作符 与其它语言不同,C语言支持全部的位操作符(BitwiseOperators)。因为C语言的设计目的是取代汇编语言,所以它必须支持汇编语言所具有的运算能力。位操作是对字节或字中的位(bit)进行测试、置位或移位处理,这里字节或字是针对C标准中的char和int数据类型而言的。位操作不能用于float、double、longdouble、void或其它复杂类型。表2-7给出了位操作的操作符。位操作中的AND、OR和NOT(1的补码)的真值表与逻辑运算等价,唯一不同的是位操作是逐位进行运算的。 三亿文库包含各类专业文献、各类资格考试、文学作品欣赏、外语学习资料、生活休闲娱乐、高等教育、幼儿教育、小学教育、C语言字符型数据(4、5)20等内容。 
 4.c语言算法特性 3.while语的用法 4.字符数据的输入输出 5.如何表示一个算法...字符型数据包括字符常量和字符变量。 3.1.1 字符常量字符常量是用单引号括起来的...  单片机C语言数据类型 3页 免费 单片机C语言第四课 数据类... 5页 2财富值 ...分无符号字符类型 unsigned char 和有符号字符类型 signed char,默 认值为 ...  2. 在 C 语言中,一个 int 型数据在内存中占 2 个字节,则 int 型数据的取值范围为【2】。- s%2+(s+1)%2 (a=4*5,a*2),a+6 3. ...  c语言地4章课后题_IT/计算机_专业资料。计算机专业...5) 要使上面程序的键盘输入无论用哪种格式输入数据...对于字符串,表示截取字符个数 - 输出的数据在域内...  《C语言程序设计》课后习题答案(第四版)谭浩强_工学_高等教育_教育专区。《C...数据类型 42 3.2.3 整型数据 44 3.2.4 字符型数据 47 3.2.5 浮点型...  简单的数据类型包括( B) A.整型,实型,逻辑型 B.整型,实型,字符型 C.整型...4 5 B.4 3 2 5 4 3 C.2 3 3 4 4 5 D.4 5 3 4 2 3 17.在...  《C 语言程序设计》复习题第一、二章一、单项选择题 1、下列符号中,不可以...下列属于字符型常量的是 5、表达式 18/4*sqrt(4.0)/8 值的数据类型为___....  。 第三章一、选择题 数据类型、运算符与表达式 1.与十进制数97不等值的字符...6 C) 5.500000 D) 6..已有定义:int x=3,y=4,z=5;,则表达式...[算法之道]之字符串逆序输出
字符串的逆序输出是一道经典面试题,要实现并不难,但是面试官希望看到的是面试者能否运用最简短的代码更高效的实现字符串的逆序功能。换句话说,就是做到三点:时间复杂度、空间复杂度、代码可读性。不管任何代码做到了这三点才算是好的代码。 那接下来我将介绍两种实现字符串逆序的方法,具体见下文。
二、实现字符串的逆序输出
方法一:异或法
这种方法是一种比较精简的方法,直接使用二进制来运算,更多的不说,看到代码大家就明白了。
char *reverse_str(char *str)
size_t len = 0;
unsigned int i,
len = strlen(str);
for(i=0,j=len-1; i方法二:折半对调法
折半对调法是我自己取的名,可能不是太准确勿怪。原理就是定义一个中间变量从头尾开始依次交换直到走到字符串中间一个字符。char *reverse_str(char *str)
size_t len = 0;
len = strlen(str);
for(i=0; i
或者定义两个变量i ,jchar *reverse_str(char *str)
size_t len = 0;
unsigned int i,
len = strlen(str);
for(i=0, j=len-1; i
总结:无论是异或法和折半对调法,这两种方法的时间复杂度和空间复杂度都很小。到目前为止是本人认为两种比较可行的方法,如果大家有什么更好的方法,欢迎分享交流。
网上也有很多其他的方法,像开辟新空间等方法这里就不做介绍了,本人认为在代码中如果可以做到不去申请新内存那就最好不要去做,一个变量可能觉得没什么但是积少成多,尤其是在嵌入式设备中,内存是很宝贵的,所以不建议这么做。君,已阅读到文档的结尾了呢~~
将一个数组逆序输出的C语言程序
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
将一个数组逆序输出的C语言程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 python 字符串倒序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信