字符串反转
本帖最后由 一世轻尘 于 2020-12-26 22:09 编辑#include<stdio.h>
char *reserve(char *str);
char *link(char *str1,char *str2);
int main()
{
char a,b,*p;
printf("请输入第一个字符串:\n");
gets(a);
printf("请输入第二个字符串:\n");
gets(b);
a=reserve(a);
printf("%s",a);
return 0;
}
char *reserve(char *str)
{
char *p,*q,temp;
p=str,q=str;
while(*p!='\0')
p++;
p--;
while(q<p)
{
temp=*q;
*q=*p;
*p=temp;
p--;
q++;
}
return str;
} 这一段程序是想将干啥? 本帖最后由 风过无痕1989 于 2020-12-26 22:41 编辑
第十六行 a = reserve(a); 改为:reserve(a); * reserve去掉 *
#include<stdio.h>
char reserve(char *str);
char *link(char *str1, char *str2);
int main()
{
char a, b, *p;
printf("请输入第一个字符串:\n");
gets(a);
printf("请输入第二个字符串:\n");
gets(b);
reserve(a);
printf("%s", a);
return 0;
}
char reserve(char *str)
{
char *p, *q, temp;
p = str, q = str;
while (*p != '\0')
p++;
p--;
while (q < p)
{
temp = *q;
*q = *p;
*p = temp;
p--;
q++;
}
return str;
} 风过无痕1989 发表于 2020-12-26 22:38
第十六行 a = reserve(a); 改为:reserve(a); * reserve去掉 *
还是不行,函数*reserve应该不会错,书上是这么写的 风过无痕1989 发表于 2020-12-26 22:38
第十六行 a = reserve(a); 改为:reserve(a); * reserve去掉 *
准确说这个程序和书上的应该说是一样,但是我的在这运行不了,可能支持c的标准不同,所以我想问应该要怎么改,我用的dev(程序用来实现字符串的反转) 本帖最后由 风过无痕1989 于 2020-12-26 23:37 编辑
一世轻尘 发表于 2020-12-26 23:21
准确说这个程序和书上的应该说是一样,但是我的在这运行不了,可能支持c的标准不同,所以我想问应该要怎 ...
上面的程序已经可以反序了。DEV 是部份支持 C99 的,相反,我现在用的 VS2015 是不支持 C99 的 风过无痕1989 发表于 2020-12-26 23:23
上硕的程序已经可以反序了。DEV 是部份支持 C99 的,相反,我现在用的 VS2015 j不支持 C99 的
问题找到了,不能用字符指针给字符数组赋值,要用strcpy这个函数{:10_279:} 一世轻尘 发表于 2020-12-26 23:21
准确说这个程序和书上的应该说是一样,但是我的在这运行不了,可能支持c的标准不同,所以我想问应该要怎 ...
DEV运行时去掉 最后那一条 return str; 原因是定义的是 char 类型的函数:char reserve(char *str),而一般地 char 类型的函数是不需要返回值的,只有 int 型需要
一世轻尘 发表于 2020-12-26 23:30
问题找到了,不能用字符指针给字符数组赋值,要用strcpy这个函数
不是的,你看我用 VS2015 和 DEV_C++ 两个软件运行的结果(两个结果放在同一张图里) 风过无痕1989 发表于 2020-12-26 23:40
不是的,你看我用 VS2015 和 DEV_C++ 两个软件运行的结果(两个结果放在同一张图里)
奇了怪了,你dev的那个程序我运行不了,但是在函数那加上个*就可以运行了 一世轻尘 发表于 2020-12-26 23:46
奇了怪了,你dev的那个程序我运行不了,但是在函数那加上个*就可以运行了
加个 * 号,我的 DEV 也能运行,但 VS2015 不行 风过无痕1989 发表于 2020-12-26 23:55
加个 * 号,我的 DEV 也能运行,但 VS2015 不行
那应该是需要加的,可能是因为你的dev版本比我的高,所以加了c++的一些语法(我觉得是类似于引用之类的),dev我记得是兼容c89和c11标准的,vs好像只兼容c11,vs不能运行倒正常 风过无痕1989 发表于 2020-12-26 23:55
加个 * 号,我的 DEV 也能运行,但 VS2015 不行
我再研究研究吧,不过话说你从哪下载的DevC++5.71,分享一下呗 一世轻尘 发表于 2020-12-27 00:02
我再研究研究吧,不过话说你从哪下载的DevC++5.71,分享一下呗
你是多少版本?DEV_C++ 最高可是 5.11 哟~~ 风过无痕1989 发表于 2020-12-27 00:07
你是多少版本?DEV_C++ 最高可是 5.11 哟~~
哎呀呀,我5.11,擦{:10_257:}
页:
[1]