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

c语言字符串逆转

发布时间: 2022-12-10 01:34:08

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

}

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

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

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

⑵ C语言 reverse 反转字符串问题

从一端开始,一直到字符串中间位置,每个字符,与结尾处对称位置字符对调值即可。

函数如下:

char*reverse(char*s)
{
intl,i;
chart;
l=strlen(s);
for(i=0;i<=l/2;i++)
{
t=s[i];
s[i]=s[l-i-1];
s[l-i-1]=t;
}

returns;
}

⑶ C语言 字符串反转函数(不使用库函数)

char *revstr(char *str, size_t len)
{

char *start = str;
char *end = str + len - 1;
char ch;

if (str != NULL)
{
while (start < end)
{
ch = *start;
*start++ = *end;
*end-- = ch;
}
}
return str;
}

⑷ c语言如何实现字符串的反转

#include<stdio.h>

void reverse(char s[])

{ int i,j;

char c;

for(i=0; s[i]; i++);

for(i--,j=0; j<i;)

{ c=s[j];

s[j++]=s[i];

s[i--]=c;

}

}

int main()

{ char s[200];

gets(s);

reverse(s);

puts(s);

return 0;

}

⑸ C语言中,如何逆序任意输出的字符串 求简单易懂的方法。

一般的逆序用两个while,但没多少人用,给你三种常见方法
一 设置两个指针,分别指向字符串的头部和尾部,然后交换两个指针所指的字符,并向中间移动指针直到交叉。

char *Reverse(char *s){ // p指向字符串头部 char *p = s ; // q指向字符串尾部 char *q = s ; while(*q) ++q ; q -- ; // 交换并移动指针,直到p和q交叉 while(q > p) { char t = *p ; *p++ = *q ; *q-- = t ; } return s ;}二 用递归的方式,需要给定逆序的区间,调用方法:Reverse(s, 0, strlen(s)) ;

// 对字符串s在区间left和right之间进行逆序,递归法char *Reverse( char *s, int left, int right ){ if(left >= right) return s ; char t = s[left] ; s[left] = s[right] ; s[right] = t ; Reverse(s, left + 1, right - 1) ;}三 非递归法,同样指定逆序区间,和方法一没有本质区别,一个使用指针,一个使用下标。

// 对字符串str在区间left和right之间进行逆序char *Reverse( char *s, int left, int right ){ while( left < right ) { char t = s[left] ; s[left++] = s[right] ; s[right--] = t ; } return s ;}

⑹ C语言中“reverse”反转字符串怎么用

有2处错误,在注释中显示
#include<stdio.h>
#include<stdlib.h>
int
main(void)
{
int
n;
char
*p;
puts("请输入您要输入字符串的字符个数:");
scanf("%d",&n);
//既然用char*,应统一,不能使用sizeof(int)
p
=
(char*)malloc(n*sizeof(char));
for(int
i=0;i<n;i++)
{
scanf("%c",&p[i]);//用%c接收字符
}
printf("输出reverse后的字符串:");
for(i=n-1;i>=0;i--)
{
printf("%c
\t",p[i]);
}
free(p);
system("pause");
return
0;
}

⑺ 用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语言如何实现字符串按位翻转

如果所说的是字符串的反转操作是很方便的,只要使用一个辅助单元就可以实现:
char s[200],i,j,c;
gets(s);
for(j=0;s[j];j++);
for(i=0;i<j;i++,j--)
{c=s[i];s[i]=s[j];s[j]=c;}
puts(s);

⑼ C语言字符串逆转函数

  1. 只需要将字符数组的前后数据进行交换就行了。


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

    char*reverse(char*x)
    {
    inti,tem,len=strlen(x);
    intn=len/2;
    for(i=0;i<=n;i++)//前后交换数据
    {
    tem=x[i];
    x[i]=x[len-1-i];
    x[len-1-i]=tem;
    }
    returnx;
    }

    intmain()
    {
    charp[]="abcdefghijk";
    printf("relust=%s ",reverse(p));
    return0;
    }

⑽ C语言中如何实现字符串的反转

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

string_change(char*p)
{
inti,len;
chartemp;
len=strlen(p);

//printf("%d ",len);
//testprintf("%d ",len);

for(i=0;i<(len/2);i++)
{
temp=p[i];
p[i]=p[len-1-i];
p[len-1-i]=temp;
}
}

intmain(void)
{
chara[20]="1234567890";

printf("%s ",a);
string_change(a);
printf("%s ",a);

return0;
}

两个明显的误解:

  1. char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。

  2. c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];