char str[]="I love abc";printf("%s\n",str[1]);提示非法访问
char str[]="I love abc";
printf("%s\n",str[1]);
提示非法访问。为什么。
如果我想输了其中的一个字符要怎样做呢??
问题点数:10、回复次数:12Top
1 楼pcboyxhy(-273.15℃)回复于 2005-04-19 21:04:34 得分 5
printf("%c\n",str[1]);
//%s 对应的参数被解释为地址
Top
2 楼steedhorse(晨星)回复于 2005-04-19 21:05:54 得分 5
printf("%c\n",str[1]);Top
3 楼steedhorse(晨星)回复于 2005-04-19 21:06:59 得分 0
"%s"把后面的参数解释为地址,而你后边提供了一个字符,当把这个字符强行作为内存地址来解释,并到那个地址去提取字符串时,自然会发生严重错误。Top
4 楼bing_huo(我是一个演员!)回复于 2005-04-19 21:11:25 得分 0
星星开会?Top
5 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-04-19 21:14:15 得分 0
不错
Top
6 楼FromNoWhere()回复于 2005-04-19 22:51:17 得分 0
呵呵, 厉害
问题深入了, 再简单也是不简单:)
学习:)Top
7 楼junmayang(笨猪)回复于 2005-04-20 10:06:28 得分 0
%s改成%cTop
8 楼Cnwanglin(你们太有才了)回复于 2005-04-20 14:53:46 得分 0
如果换成%f呢Top
9 楼thisisll(学习王高李,有个好身体)回复于 2005-04-20 15:12:51 得分 0
printf("%c\n",&str[1]);Top
10 楼Cnwanglin(你们太有才了)回复于 2005-04-20 17:18:31 得分 0
萝卜开会Top
11 楼Sword_liao(Sword_liao)回复于 2005-04-20 18:49:35 得分 0
printf("%c\n",str[1]);Top
12 楼michael0315(逍遥)回复于 2005-04-20 20:36:15 得分 0
int len = strlen(str);
for (int i = 0 ; i < len ; i ++)
printf("%c\n",str+i);Top
相关问题
- 请问char tmp[N]与char * tmp=new char[N]有什么区别?
- GlobalMemoryStatus(&mm); printf("%d\n\n",mm.dwMemoryLoad); Sleep(1000);
- char* string,和 char string[n] 有区别吗?
- 请教 printf("%*s\n"什么意思? ----- megaboy
- 为什么printf("%d\n",strlen(\t\"\085\xff\n"))它的结果是2??????
- char[(n)],n表示字符个数,还是字节数?
- 有人知道这句话干什么吗?fwrite( "how are \n\n you", sizeof( char ), 16, fp );
- [求助]indep_printf(char *fmt,...)重新封装了一下printf,可怎么出错呢?
- \n在cprintf和printf中到底有什么区别?
- printf("%d\n", (++z) + (++z) + (++z));的结果是多少???




