Chinaunix
标题:
反转的小例子,求解!
[打印本页]
作者:
hubimaso
时间:
2012-06-18 19:46
标题:
反转的小例子,求解!
#include <stdio.h>
int main(void)
{
int i;
char str[6] = "hello";
char reverse_str[6] = "";
// char reverse_str[];这样的话第一个元素值不是‘\0’
printf("%s\n", str);
for (i = 0; i < 5; i++)
reverse_str[5-i] = str[i];
printf("%s\n", reverse_str);
return 0;
}
复制代码
作者:
fdl19881
时间:
2012-06-18 21:28
12行下面加一句
reverse_str[i] = 0;
你应该都知道是缺个'\0'值。。。想问啥 ?
作者:
hubimaso
时间:
2012-06-18 21:58
就是你那意思。呵呵!我试试
回复
2#
fdl19881
作者:
hubimaso
时间:
2012-06-18 22:03
不行啊,没结果输出啊!
回复
3#
hubimaso
作者:
hubimaso
时间:
2012-06-18 22:09
请看图,主要看reverse_str
未命名.jpg
(39.85 KB, 下载次数: 15)
下载附件
2012-06-18 22:08 上传
作者:
fdl19881
时间:
2012-06-18 22:23
#include <stdio.h>
int main(void)
{
int i;
char str[6] = "hello";
char reverse_str[6] = "";
// char reverse_str[];这样的话第一个元素值不是‘\0’
printf("%s\n", str);
for (i = 0; i < 5; i++)
reverse_str[4-i] = str[i]; //here
reverse_str[i] = 0;
printf("%s\n", reverse_str);
return 0;
}
作者:
hubimaso
时间:
2012-06-18 22:28
谢啦!
回复
6#
fdl19881
作者:
hubimaso
时间:
2012-06-18 22:34
这不能是严格意义上的反转,因为reverse_str[0]不是‘\0’,reverse_str[5]是'\0',呵呵!!!
回复
7#
hubimaso
作者:
fdl19881
时间:
2012-06-18 23:38
本帖最后由 fdl19881 于 2012-06-18 23:38 编辑
'\0'不能称为字符串的内容。
就像strlen(str)求字符串长度时,并不把'\0'包括进去一样。。
转牛角尖。。。
作者:
xbjpkpk
时间:
2012-06-20 14:13
你把\0放在字符串第一个位置了,字符串怎么来把\0后面的内容给你输出,一看到\0就认为字符串已经结束了,就不会继续输出了。
作者:
hubimaso
时间:
2012-06-20 21:14
嗯,谢啦,呵呵,感觉自己好菜,死脑筋!
回复
10#
xbjpkpk
作者:
z75993971
时间:
2012-06-26 12:33
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2