gpt4 book ai didi

c - 我的 stringreverse 程序输出错误。我的代码有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:45 24 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
#include<string.h>
char* strreverse(char*);
int main()
{
char *rev_string;
char *name="computer";
clrscr();
rev_string=strreverse(name);
printf("%s", rev_string);
getch();
return 0;
}
char* strreverse(char *name)
{
int length=strlen(name);
char *ptr;
char *rstr;
for(ptr=name+(length-1);ptr>=name;ptr--)
{
*rstr=*ptr;

printf("%c",rstr);
rstr++;
}
*(rstr)=NULL;
return rstr;
}

以上是我的代码。我试图在不使用数组的情况下编写一个字符串反转程序。但我没有得到输出 retupmoc。我的代码有什么问题?如何在 char* 中插入空字符?

最佳答案

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

char* strreverse(const char*);

int main(){
char *rev_string;
char *name="computer";
clrscr();
rev_string=strreverse(name);
printf("%s\n", rev_string);
free(rev_string);
getch();
return 0;
}

char* strreverse(const char *name){
int length=strlen(name);
const char *ptr;
char *ret, *rstr = malloc(length + 1);
if(ret=rstr){
for(ptr=name+length;ptr != name;){
*rstr++ = *--ptr;
}
*rstr = '\0';
}
return ret;
}

关于c - 我的 stringreverse 程序输出错误。我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23240860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com