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

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】

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料
  • ¥15 51单片机的外部中断,按下按键后不能切换到另一个模式
  • ¥15 java连接sqlserver有问题
  • ¥15 yolov8 如何调cfg参数
  • ¥15 这个四人抢答器代码哪儿有问题?仿真程序怎么写?
  • ¥15 burpsuite密码爆破
  • ¥15 关于#ubuntu#的问题,如何解决?(相关搜索:移动硬盘)
  • ¥15 scikit安装之后import不了
  • ¥15 Ros2编译一个使用opencv的c++节点的时候,报了这个错误,请问怎么解决啊
  • ¥15 人脸识别相关算法 YOLO,AI等