改错 字符串倒序
来源:互联网 发布:软件与软件教育现代化 编辑:程序博客网 时间:2024/06/15 13:47
请找出下面代码中的所有错误。说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
#include
"string.h"
2
int
main()
3
{
4
char
*src =
"hello,world"
;
5
char
*dest = NULL;
6
int
len = strlen(src);
7
dest = (
char
*)malloc(len);
8
char
*d = dest;
9
char
*s = src[len];
10
while
(len-- !=
0
)
11
*d++ = *s--;
12
printf(
"%s"
, dest);
13
return
0
;
14
15
}
正确答案: A B C D
第7行要为'\0'分配一个空间
第9行改成char * s = &src[len-1]
第12行前要加上*d = '\0'
第13行前要加上free(dest)释放空间
解析
方法1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int
main()
{
char
*src =
"hello,world"
;
int
len = strlen(src);
char
*dest = (
char
*)malloc(len +
1
);
//要为\0分配一个空间
char
*d = dest;
char
*s = &src[len -
1
];
//指向最后一个字符
while
( len-- !=
0
)
*d++ = *s--;
*d =
0
;
//尾部要加\0
printf(
"%s\n"
, dest);
free(dest);
// 使用完,应当释放空间,以免造成内存汇泄露
return
0
;
}
方法2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int
main()
{
char
str[] =
"hello,world"
;
int
len = strlen(str);
char
t;
for
(
int
i =
0
; i < len; i++)
{
t = str[i];
str[i] = str[len - i -
1
];
str[len - i -
1
] = t;
}
printf(
"%s"
, str);
return
0
;
}
0 0
- 改错 字符串倒序
- 改错 字符串倒序
- 数组倒序 & 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 倒序字符串
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- 字符串倒序
- spark-sql 结合 hive
- 【系统安全】密码规则和登录限制
- Java8 学习笔记-stream-collection(2)
- HTTP/1.1的实体首部
- uboot连接器脚本
- 改错 字符串倒序
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- Island Perimeter
- java进行异常处理时的注意事项
- 移动前端开发之viewport的深入理解(总结)
- [leetcode]25. Reverse Nodes in k-Group
- RabbitMQ学习(二)---------请求许可
- Mybaits利用resultMap实现一对多
- 数据中心传回的信息对源节点进行控制(一)