搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 用指针写了个用指针对3个字符串由小到大排序的题目,但是总是没找到哪错了,求解
标题:
用指针写了个用指针对3个字符串由小到大排序的题目,但是总是没找到哪错了, ...
只看楼主
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
11
楼
得分:0
你那“答案”與8樓的不同,在於後者把指針temp指向了一個有效的空間,即p1字符串的入口,而前者是哪都不指向的。
授人以渔,不授人以鱼。
2015-02-25 23:55
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
得分:0
8樓代碼的漏洞,是假定已分配的某個字符串空間足以應用,但現實的數據未必如此,因爲你事先并不知道哪個字符串是最長的。8樓鑽了一個空子,使用統一尺寸的“二維”數組,但現實需要排序的字符串序列可能是非整齊的真二維數組(即鋸齒形的)。
[
本帖最后由 TonyDeng 于 2015-2-26 00:00 编辑
]
授人以渔,不授人以鱼。
2015-02-25 23:58
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
13
楼
得分:0
以下是引用
firewater
在2015-2-25 23:34:40的发言:
我是在做谭浩强那本书上的习题,请问有必要写那本书上的习题吗,还是做c和指针里的习题......
再說一下這個話題:編程沒有什麽標準答案,不要被《答案》誘導,那衹能作爲參考,檢驗真理的途徑是實踐。
授人以渔,不授人以鱼。
2015-02-26 10:35
aiyifan
等 级:
新手上路
帖 子:8
专家分:1
注 册:2015-2-24
第
14
楼
得分:1
版主威武,在使用指针的时候必须确保指针是有效的。
void swap(char* p1,char* p2){
char* temp = NULL;
int len1 = strlen(p1);
int len2 = strlen(p2);
if(len1 > len2)
temp = (char*)malloc(len1+1);
else
temp = (char*)malloc(len2+1);
if(temp == NULL)exit(-1);
if(strcmp(p1,p2)>0){
strcpy(temp,p1);
strcpy(p1,p2);
strcpy(p2,p1);
}
}
2015-02-26 11:06
14
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-442199-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.904427 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved