给定一个字符串,将该字符串逆序转换无解了么?
给定一个字符串,将该字符串逆序转换,并输出。
输入数据:共 1 行数据,是一个字符串
输出数据:共 1 行数据,是一个字符串
题目如上,用了以下几种方法,明明在本机上输出都是倒序的,为啥说答案错呢?
方法1:

#include <stdio.h>

#include <string.h>

 

void conv(char *);

int main(void)

{

 char str[80];

 puts("Enter a string:");

 gets(str);

 conv(str);

 return 0;

}

void conv(char *s)

{

 int len=strlen(s);

 int i,j;

 char str2[80];

 for(i=len-1,j=0;i>=0;i--,j++)

 {

  str2[j]=s[i];

 }

 str2[j]='\0';  // 或者 str[len-1]='\0'

 puts(str2);

}
方法二:指针头尾互调
#include <stdio.h>
#include <string.h>

void conv(char *);
int main(void)
{
 char str[80];
 puts("Enter a string:");
 gets(str);
 conv(str);
 printf("%s\n",str);
}
void conv(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 ;
}

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
2022-12-01 17:51
고려대학교_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议