| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 652 人关注过本帖
标题:有个c语言的编程问题...
只看楼主 加入收藏
c语言白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-16
收藏
 问题点数:0 回复次数:9 
有个c语言的编程问题...
to replace tab characters by a string of one or more ‘>’ characters so that the input line length is made up to the next multiple of 8, which means that characters following tabs will appear in columns 9, 17, 25, 33 and so on. For example, if the input looks like this (where the positions of tab characters are indicated by the symbol "这里是有个一个符号的键盘打不出来,我用%%代替")
Family%%Given%Phone
Simpson%%Homer%%555-1234
Gumble%%Barney%%555-9876
then the output should look like this (the ‘G’ of ‘Given’ is in column 9 and the ‘P’ of ‘Phone’ is in column 17)
Family>>Given>>>Phone
Simpson>Homer>>>555-1234
Gumble>>Barney>>555-9876

哪位高手可以帮忙解答下...
搜索更多相关主题的帖子: c语言 
2007-08-16 21:25
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

希望翻译一下


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-17 09:21
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 

长度不足8的用'>'来对齐嘛

什么符号打不出来??打不出来那还怎么输入?

2007-08-17 09:28
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
收藏
得分:0 


#include <iostream.h>
#define MAX_LEN 256
#define MAX_NUM 100
#define MAX_WORD_LEN 8 //假定单词字母数字都是小于等于8的,多的没考虑!
int nCount = 0;

void SliptToWord(char *p,char **ret)
{
char *q = p;
int i = 0;
int j = 0;
while(q[i])
{
for(;!(((q[i]=='%')&&(q[i+1]=='%'))||q[i]=='\0');i++); //这边要看清楚
if(q[i] == '%')
{
q[i] = '\0';
ret[j++] = q;
q = &q[i+2];
nCount++;
i = 0;
}
else if(q[i] == '\0')
{
ret[j++] = q;
nCount++;
}
}
}

int main()
{
char *p = new char[MAX_LEN];
cin>>p;
char *ret[MAX_NUM];
for(int i = 0;i<MAX_NUM;i++)
{
ret[i] = new char[MAX_WORD_LEN];
}
SliptToWord(p,ret);
int nWordLen = 0;
for(int i = 0;i<nCount;i++)
{
cout<<ret[i];
nWordLen = strlen(ret[i]);
for(int j = 0;j<MAX_WORD_LEN-nWordLen;j++)
{
cout<<'>';
}
}

delete [] *ret;
return 0;
}

[此贴子已经被作者于2007-8-17 10:32:07编辑过]


2007-08-17 10:25
c语言白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-16
收藏
得分:0 

就是说用一个或者多个">"字符来代替tab字符.简单点说就是跟在tab字符后面的字母要出现在第9行.第17行。第35行...

楼上的。有这么复杂吗??

2007-08-17 12:58
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
收藏
得分:0 
以下是引用c语言白痴在2007-8-17 12:58:54的发言:

就是说用一个或者多个">"字符来代替tab字符.简单点说就是跟在tab字符后面的字母要出现在第9行.第17行。第35行...

楼上的。有这么复杂吗??


别光说不做,有简单的,就把代码贴出来。
还有,你是来请教的还是来消遣的?稍微谦虚一点。。。


2007-08-17 13:14
c语言白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-16
收藏
得分:0 
晕.你完全误解我的意思了..我只是觉得应该不会很复杂..因为我做了第一个.

copies each character from standard input directly to standard output, except that each space is replaced by a tilde (‘~’).if the input looks like this
The quick brown fox jumps
over the lazy dog.
then the output should look like this
The~quick~brown~fox~jumps
over~the~lazy~dog.
The program should continually process input until it reaches end-of-file. The core of the program will be a loop with the following structure:
while (get a character from stdin and test for end-of-file) {
put the character (or its replacement) to stdout
}

第二个应该只需要在这个基础上修改下便可,所以我觉得应该没那么复杂的..你看看第一个.
2007-08-17 13:29
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
收藏
得分:0 
看了,那是完全不一样的题目!
如果用String来做的话,这题只要一条语句就可以完成了!

str.replace(\" \",\"~\"); //String str = \"quick brown fox jumps\";


而第二题要做完整还是比较复杂的,他要考察每个单词的长度!然后补齐!
“%”还要对只有一个%的情况的过滤!
完整的话,还要考虑,单词字长超过8的时候,就要考虑,后续单词的排列了!

一句话,自己动手,什么都清楚!




2007-08-17 13:36
c语言白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-16
收藏
得分:0 
2007-08-17 15:36
c语言白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-16
收藏
得分:0 
回复:(c语言白痴)有个c语言的编程问题...
还有哪位高手可以解答下...
2007-08-19 06:39
快速回复:有个c语言的编程问题...
数据加载中...
 
   



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

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