c语言 请找出下列代码中的错误为什么错

来源:百度知道 编辑:UC知道 时间:2024/06/15 07:28:55
本人菜鸟虽然看的出点错误但是为什么错却不知道,所以请指出错误的大虾们顺便说说错在哪里。
#include "string.h"
main(){
char *src="hello,world";
char *dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char *d=dest;
char *s=src[len];
while(len--!=0)
d++=s--;
printf("%s",dest);
return 0;
}

char *s=src[len]; //字符型指针指向一个内容,应改为char *s= src+len;
d++=s--; //指针赋指等于指针,应该为*d++ = *s--;
即便如此还是有问题的,s指向最后一个字串结束符'\0',从后向前赋指后,打印时,第一个字符就是结束符'\0',还是没有结果。完整修改如下:
#include "string.h"
main(){
char *src="hello,world";
char *dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len+1);
char *d=dest;
char *s= src+len-1;
while(len--!=0)
*d++=*s--;
*d = 0;
printf("%s",dest);
return 0;
}

char *s=src[len]; 数组初定义不可用变量

建议大手术吧

我改了几个地方,你对比着看一下吧。

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main() {
char *src="hello,world";
char *dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char *d=dest;
char *s=src;
while (len--!=0)
*d++=*s++;
printf("%s&q