hackergroup
2017-11-27 06:01
采纳率: 100%
浏览 1.6k
已采纳

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个字符才可以,希望大神教教如何输入任意长度都可以反转

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • sanmaohuijia 2017-11-27 06:49
    已采纳

    #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);
    }

    点赞 评论
  • Debug_dodge 2017-11-27 06:31

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

    点赞 评论
  • GangStudyIT 2017-11-27 07:08

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

    {

    while(str<=end)
    
    {
    
        char temp = *str;
    
        *str = *end;
    
        *end = temp;
    
        str++;
    
        end--;
    
    }
    

    }

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

    点赞 评论
  • 月光沐情 2017-11-27 08:49

    考虑可以用栈实现反转

    点赞 评论
  • 阿里神鲲 2017-11-27 09:41

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

    点赞 评论

相关推荐 更多相似问题