| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 718 人关注过本帖
标题:[求助]循环中字符串指针怎么没有指向串的第一个字母?
只看楼主 加入收藏
tracycc
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:5 
[求助]循环中字符串指针怎么没有指向串的第一个字母?

#include <stdio.h>

main()
{
char * line[500], *str;
int i = 0,j;
str = (char *)malloc(128);
while(1)
{
scanf("%s",str); /*从这开始*/
line[i] = (char *)malloc(128);/* 分配指针空间*/
strcpy(line[i], str); /*save*/
++ i;
if(getchar() == '\n'&& getchar() == '\n')
{
break;
}
}
for(j = 0;j < i;j ++)
{
printf("%s\n",line[j]);
}
}
跟踪发现第一次循环时str 指向第一个字母,接下来的循环都指向了输入字符串的第二个字母,是怎么回事
我的输入是:
ab
cd
ef

输出是
ab
d
f

搜索更多相关主题的帖子: 指针 字母 字符 
2006-08-08 00:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
被getchar()接收了

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-08 06:54
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
if(getchar() == '\n'&& getchar() == '\n')
{
break;
}
char c;
.........
.......
if(getchar() == '\n' && (c=getchar()) == '\n')
break;
else
std::cin.putback(c);
.........


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-08 07:12
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
char c;
.........
.......
if(getchar() == '\n' && (c=getchar()) == '\n')
break;
else
else ungetc(c,stdin);
.........

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-08 11:04
haroldi
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
收藏
得分:0 
while(gets(str)&&str[0]!='\0')
{
line[i] = (char *)malloc(128);
strcpy(line[i], str);
++ i;
}

Do people want thick road ...
2006-08-08 12:10
pangshuai1107
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-8-27
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <MALLOC.H>
main()
{
char * line[500], *str;
int i = 0,j;
str = (char *)malloc(128);
while(1)
{
scanf("%s",str); /*从这开始*/
line[i] = (char *)malloc(128);/* 分配指针空间*/
strcpy(line[i], str); /*save*/
++ i;
if(getchar() == '\n')
{
break;
}
}
for(j = 0;j < i;j ++)
{
printf("%s\n",line[j]);
}
for(j = 0;j < i;j ++)
{
free(line[j]);
}
free(str);
}
2006-08-27 11:47
快速回复:[求助]循环中字符串指针怎么没有指向串的第一个字母?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024450 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved