当前位置:首页 » 编程语言 » c语言字符串逆序

c语言字符串逆序

发布时间: 2022-08-29 19:16:29

A. c语言程序 输入一字符串存入数组中,逆序存放并输出

对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来的字符数组中,最后输出。(不得调用任何字符串处理函数),例如:

输入

hello

world

输出

dlrow

olleh

(1)c语言字符串逆序扩展阅读:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。

B. c语言字符串逆序输出。

#include<stdio.h>
#include<string.h>

intmain()
{
inti;
intstr_len;
charstr[81];
gets(str);
str_len=strlen(str);
//str_len-1就是最后一个元素的下标不理解的话可以想想"abc"长度3最后c的下标是2理解了吧
//然后一直自减到i=0也就是第一个字符那么下面的for循环的意思就是
//从最后一个字符逐个倒着输出这个字符串的元素
for(i=str_len-1;i>=0;i--)
{
printf("%c",str[i]);
}

return0;
}

C. 用C语言写 字符串逆序输出

逆序输出有很多种,具体的实现方法取决于你题目的要求
1. 如果只是要求逆序输出,那么可以采用类似的方法:
void reverse(char *s)
{
if(*s=='\0')
return;
reverse(s+1);
printf("%c",*s);
}
这种方法在s很长的情况下会一直递归到底,不是很好。
2. 如果需要将字符串整个逆序在函数外面输出,那么可能希望采用返回字符串指针的方式;实现如下:
char * reverse( char* s )
{
static char *p = s+strlen(s)-1; //p是一个静态变量,指向当前递归层处理的字符串尾,而s指向字符串头
if(s < p)
{
char c = *p; //交换头尾字符
*p = *s;
*s = c;
p--; //尾向前挪一个
reverse(s+1); //相当于头向后挪一个
}
return s;
}
3.1 当然,有的时候,并不需要reverse函数本身递归,而是可以借助一些辅助的递归函数,比如说:
void reversehelp(char * head, char * end)
{
if (head < end)
{
char c = *head;
*head = *end;
*end = c;
reversehelp(++head, --end);
}
}
然后在调用时像这样调用:
char * reverse(char * s)
{
char * end = s + strlen(s) - 1;
reversehelp(s, end);
return s;
}
3.2 类似的辅助函数还可以采用一个字符串指针和一个长度参数的方式,如下例:
void reversehelp( char* s, int n )
{
if ( n > 1 )
{
char c = s[n-1];
s[n-1] = s[0];
s[0] = c;
reversehelp( s+1, n-2 );
}
}
然后在调用时如下:
char *reverse(char *s)
{
reversehelp( s, strlen(s) );
return s;
}

D. c语言逆序输入字符串

while(getchar()!='\n'&&i<=100){
//吸收第一个
ch[i]=getchar();
//读取第二个
i++;
}
错在这里,你whlie判断数组是否输入结束的时候已经读入了一个字符,
这就意味着每输入两个字符你只能获得一个,其中一个被while
判断中的getchar吸收掉了

E. 如何用C语言将字符串逆序输出

C语言程序如下:

#include<stdio.h>

#include<string.h>

main()

{

int i,j,t,n;

char a[10];

printf("请输入字符串:");

gets(a);

n=strlen(a);

for(i=0;i<=n/2;i++)

{

t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;

}

for(j=0;j<n;j++)

printf("%c",a[j]);

printf(" ");

}

(5)c语言字符串逆序扩展阅读:

字符串倒序输出的五种方法

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

F. 如何用C语言实现字符串逆序排列

楼主你好
具体代码如下:
#include<stdio.h>
#include<string.h>
int
main()
{
char
*p;
char
c[20];
printf("Enter
a
string:");
scanf("%s",c);
p=c+strlen(c)-1;
while(p>=c)
printf("%c",*(p--));
printf("\n");
}
希望能帮助你哈

G. C语言:输入一个字符串,然后逆序输出

可以将整数当做字符串(字符串长度不超过10)接收,然后反向输出字符数组元素即可。

字符串实际长度可以用strlen函数来计算。

方法程序如下:

#include<stdio.h>

#include<string.h>

main()

{char a[10];int i,j;

scanf("%s",a);

j=strlen(a);

for(i=j-1;i>=0;i--)

printf("%c",a[i]);

printf(" ");}

(7)c语言字符串逆序扩展阅读:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位操作

实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。

热点内容
皖教育密码是多少 发布:2025-01-16 16:50:59 浏览:450
有专用dhcp服务器无法获取ip 发布:2025-01-16 16:48:58 浏览:809
c语言找出回文数 发布:2025-01-16 16:46:26 浏览:413
苹果4的访问限制密码是多少 发布:2025-01-16 16:42:04 浏览:651
奇迹传奇日服为什么没有服务器 发布:2025-01-16 16:22:08 浏览:858
android浏览器控件 发布:2025-01-16 16:22:05 浏览:155
数据库10061 发布:2025-01-16 16:11:47 浏览:701
电脑网络ip地址怎么配置 发布:2025-01-16 16:03:48 浏览:330
我的世界安卓网易版怎么装材质包 发布:2025-01-16 16:00:55 浏览:255
404页面源码 发布:2025-01-16 15:58:48 浏览:888