问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

才开始学习c语言,字符串与指针方面不懂!

发布网友 发布时间:2023-05-03 11:00

我来回答

4个回答

热心网友 时间:2023-10-19 16:51

swap(char *s1,char *s2)
{
char *t;
t=s1;s1=s2;s2=t;

}
2:30考马哲了,冒着挂科的危险来回答你,这个函数有问题。应该用strcpy(t, st), strcpy(s1, s2), strcpy(s2, t)才能达到交换的目的。而且在main前面应该加上函数的声明void swap(char *s1, char *s2);如果你用int 类型,那么你应该返回一个值。
再说说一个致命错误,在main中,你用的是char *s1 = "abc",这样的变量存储在静态区,用strcpy改变是错误的,会引起程序崩溃,所以你要用字符数组去存储。别忘了加上#include <string.h>

最后,你上面程序的结果不是你想象的那样,结果是
abc
def

另外,我负责的告诉你,像这种方法:*t=*p1;*p1=*p2;*p2=*t; 是达不到你的效果的,因为*t,*p1,*p2都是首地址的内容,也就是第一个字符,所以这样做只能改变第一个字符,也就是最终是dbc,aef,不信你试一试。不过要避免程序崩溃,你必须在main里面改变一下:char *s1="abc";char *s2="bcd";这样做后,你试图改变s1和s2都是错误的,不能对它们改变,我已经说过了。

热心网友 时间:2023-10-19 16:52

你程序的输出:
abc
def
但这个结果并不是你想要的结果,应该使用二级指针,程序如下:
#include <stdio.h>
#include <stdlib.h>

void swap(char **ps1,char **ps2)
{
char *pt;
pt=*ps1;
*ps1=*ps2;
*ps2=pt;

return;
}

int main()
{
char *s1="abc",*s2="def";
swap(&s1,&s2);
puts(s1);
puts(s2);
getch();
return 0;
}

执行结果:
def
abc

热心网友 时间:2023-10-19 16:52

def
abc
main和swap函数应加上类型说明符void
swap函数将两个指针所指向的字符串调换
我在2005上调试的结果就是这样
但我觉得swap应改成这样:
void swap(char *p1,char *p2)
{
char t[10];
*t=*p1;*p1=*p2;*p2=*t;

}

热心网友 时间:2023-10-19 16:53

abc
def
如果你想让两个字符串换位置的话,只需把最后一行程序改为:
*t=*s1,*s1=*s2,*s2=*t
这样的话输出结果是:
def
abc
我也初学C语言,呵呵~~~!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网上退税怎么退 如何申请退税? 十多年前看的有部僵尸片电影中间一个僵尸被追到一个城里躺躲在一副水... 什么什么鲜花? 芳香的什么、明亮的什么填名词 芳香的什么 这里的"为"的繁体字对吗?手机上是为和为 塑料保鲜盒概述 红米K60Ultra跑分怎么样 红米K60Ultra最新实测跑分数据一览 性价为纲 极致体验——Redmi K60 Ultra体验测评 为什么k50u之后,至尊版再无骁龙芯?红米是要越来越懵逼了 C语言文件打开时 w+和r+有什么不同。。除了一个要求文件必须存在 一个没要求外。。 C语言ENUM这个数组ABCD这个 C语言ENUM这个数组ABCD这个 正性错觉不包括()。 幸福心理学_幸福心理学2019答案 李斯代表碑刻的书法特点 国际语言是什么语 椑车的解释 急求此CT意思.200分跪求全文意思. CT是什么意思呀? 帮我女儿和我儿子取个好听名字、他们是龙凤胎、我性吕。谢谢。 澧源镇的概述 我在网上查不到我的快递单号? 运动内衣跟美背内衣有什么区别 奶枣是什么意思? 在数学上面的互相平行是什么意思 平行的含义和特征求~~~ lulu是什么牌子衣服 露露乐蒙是什么档次 双方支付宝交易 一个外包网站,为供需双方提供支付宝,作为在线支付,请问支付宝是如何实现货(很多是在线服务)到付款的? 九阳热水壶为什么要设计成2000多瓦的功率 九阳养生壶煮粥多大功率 欠网贷无力偿还怎么协商还款? 平移有什么特点 什么叫平移,平移的特点 这些平移有哪些特点 各种颜色的特点是什么? 玄关见橙色好不好 联通新势力卡 怎么办理亲情省? 联通怎么开通亲情省? 怎样开通亲情省 北京联通新势力卡 怎么办理亲情省? 北京联通 亲情省是要每个月申请一次吗?? 手机怎么设置亲情省? 固有免疫的特点有() 试述固有免疫的过程与主要特点。 参与固有免疫的细胞有哪些?有何共同特点 固有免疫应答的特点不包括 厉兵秣马的典故,厉兵秣马什么意思? 东吴中期猛将,曾击败曹魏头号名将,留下什么典故流传至今?