C语言字符串方面字符的反转问题

C语言字符串方面字符的反转问题

问题描述:

#include
int main()
{
int i,j,k,n,h;
char s1[1024],s2[1024];
scanf("%d",&n);
for(i=1;i<=n;i++)//循环输入两次
{
for(j=0,k=7;j<=7&&k>=0;j++,k--)
{
scanf("%c",&s1[j]);
s2[k]=s1[j];//换位

}
for(h=0;h<=7;h++)
{
printf("%c",s2[h]);//输出
}
}

我想任意输入长度的字符然后反转,但是这样编程循环中进行了限制,必须输入7个字符才可以,希望大神教教如何输入任意长度都可以反转

#include
#include
int main()
{
int i,j,k,n,h;
char s1[1024],s2[1024];
scanf("%s",s1 );
for(i=strlen(s1)-1,j=0;i>=0;i--,j++){
s2[j]=s1[i];
}
s2[j]=0x00;
printf("%s\n",s2);
}

%s读入一个字符串,然后strlen计算一下字符串长度不就行了吗。。。头文件是

void reverse(char *str,char *end)//传入字符串对应的地址。

{

while(str<=end)

{

    char temp = *str;

    *str = *end;

    *end = temp;

    str++;

    end--;

}

}

输入到s1中,用strlen求出长度,让后传入起始地址和尾地址!就反转了!图片说明

考虑可以用栈实现反转

动态数组 char* str=new char【n】