当前位置:首页 » 编程语言 » 已知字符串如何求逆序c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

已知字符串如何求逆序c语言

发布时间: 2022-09-26 19:35:00

㈠ 用c语言写 字符串逆序输出

逆序输出有很多种,具体的实现方法取决于你题目的要求

1.如果只是要求逆序输出,那么可以采用类似的方法:
voidreverse(char*s)
{
if(*s=='')
return;
reverse(s+1);
printf("%c",*s);
}
这种方法在s很长的情况下会一直递归到底,不是很好。

2.如果需要将字符串整个逆序在函数外面输出,那么可能希望采用返回字符串指针的方式;实现如下:
char*reverse(char*s)
{
staticchar*p=s+strlen(s)-1;//p是一个静态变量,指向当前递归层处理的字符串尾,而s指向字符串头
if(s<p)
{
charc=*p;//交换头尾字符
*p=*s;
*s=c;
p--;//尾向前挪一个
reverse(s+1);//相当于头向后挪一个
}
returns;
}

3.1当然,有的时候,并不需要reverse函数本身递归,而是可以借助一些辅助的递归函数,比如说:
voidreversehelp(char*head,char*end)
{
if(head<end)
{
charc=*head;
*head=*end;
*end=c;
reversehelp(++head,--end);
}
}
然后在调用时像这样调用:
char*reverse(char*s)
{
char*end=s+strlen(s)-1;

reversehelp(s,end);
returns;
}

3.2类似的辅助函数还可以采用一个字符串指针和一个长度参数的方式,如下例:
voidreversehelp(char*s,intn)
{
if(n>1)
{
charc=s[n-1];
s[n-1]=s[0];
s[0]=c;
reversehelp(s+1,n-2);
}
}
然后在调用时如下:
char*reverse(char*s)
{
reversehelp(s,strlen(s));
returns;
}

㈡ C语言将字符串逆序输出问题(用函数)

没有看明白你的代码,如果只是想把字符逆转后再输出.这应是很简单的,下面我写了一个逆转字符后并输出的代码:

#include<stdio.h>
#include<string.h>
#defineSTRING_MAX_LONG100
/*Functionprototypes*/
voidswaping(char*,char*),InverseString(char*,int);

voidmain()
{
charstr[STRING_MAX_LONG];
intstrLen=0;
printf("Pleaseinputstring:");
scanf("%s",str);

InverseString(str,strlen(str));
printf(" Inversestringafter:%s ",str);
}

voidswaping(char*a,char*b)
{
chartemp=*a;
*a=*b;
*b=temp;
}
voidInverseString(chars[],intlen)
{
inti,k=-1,j;
i=j=0;

for(i=k+1;i<len;i++){
j=len-i+k;
if(i>=j)break;
swaping(&s[i],&s[j]);
}
}

㈢ C语言中怎么求逆序

因为这个数字很长,而且开头允许以零开始,所以有必要使用字符串来保存这个数字。然后用两个变量分别指向它的第一个数字和最后一个数字,在使用一个循环判断这两个数字是否相同,如果相同,就把前面的标加一,并且把后面的下标减去一,直到前面的下标大于后面的下标,或者两个下标所指的数字不相同。只要退出的时候两个下标的数字不相同,原来的数字就不是幸运数字,否则他就是一个幸运数字。

㈣ C语言 字符串逆序

ch=getchar();//从键盘键入一个字符
for(i=0; ch!='\n'; i++) {//如果不是回车键

a[i]=ch;//输入第i个=该字符
n++;//数量累加
ch=getchar();//继续得到一个键入的字符直到该字符是回车键终止循环
}
打字不容易望采纳谢谢。。。

㈤ 用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;
}

㈥ 如何用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(" ");

}

(6)已知字符串如何求逆序c语言扩展阅读:

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

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

㈦ C语言,输入一个字符串,逆序排列后输出

可以参考下面的代码:

#include "stdio.h"

main()

{

char strA[200];

char Temp;

int i=0,Length=0;

clrscr();

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

gets(strA);

Temp=strA[0];

while(Temp!=''){

Length++;

Temp=strA[i++];

}

Length--;

for(i=0;i<Length/2;i++){

Temp=strA[i];

strA[i]=strA[Length-i-1];

strA[Length-i-1]=Temp;

}

puts(strA);

getch();

}

(7)已知字符串如何求逆序c语言扩展阅读:

C语言参考函数:

atof(将字符串转换成浮点型数)

atoi(将字符串转换成整型数)

atol(将字符串转换成长整型数)

strtod(将字符串转换成浮点数)

strtol(将字符串转换成长整型数)

strtoul(将字符串转换成无符号长整型数)

toascii(将整型数转换成合法的ASCII 码字符)

注意事项:

字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

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

#include <stdio.h>

int main()

{ int len,i;

char str[100];

gets(str);

len=strlen(str);

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

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

return 0;

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

㈨ 如何用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");
}
希望能帮助你哈

㈩ 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;
}