【问题描述】输入一个以“@”结束的字符串,从左至右翻译。若下一个字符是数字n(0<n≤9),表示后一个字符重复n+1次,不论后一个字符是否为数字;若下一个字符非数字,则表示自己。翻译后,以3个字符为一组输出,组与组之间用空格分开。
例如“A2B5E34FG0ZYWPQ59R@”可翻译成“ABB BEE EEE E44 44F GZY WPQ 999 999 R@”。
【输入文件】输入文件program3.in,为需要输入的字符串(串长≤255)
【输出文件】输出文件program3.out,为翻译后的字符串。
【样例输入】
A2B5E34FG0ZYWPQ59R@
【样例输出】
ABB BEE EEE E44 44F GZY WPQ 999 999 R@
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
好的!待我研究研究再给你!
我抽时间写了一个
你看看行不行
#include<stdio.h>
const char * in_File = “r.txt”;
const char * out_File =”w.txt”;
int main(){
char str[255];
char str1[500];
char str2[500];
char temp;
int i = 0,j = 0;
FILE *inFile = fopen(in_File,”r”);
FILE *outFile = fopen(out_File,”w”);
//把文件中的字符读到str字符数组中
while(true){
temp = fgetc(inFile);
if(temp!=EOF&&temp!=’@’)
str[i++] = temp;
else
break;
}
(temp!=’@')?(str[i] = ‘\0′):(str[i++]=’@',str[i]=’\0′);
//对从文件中读取的字符进行第一步操作
i = 0;
while(str[i]!=’\0′){
if(str[i]>’0′&&str[i]<=’9′){
for(int k=str[i]-’0′ ;k>0 ;k– ){
str1[j++] = str[i+1];
}
i++;
str1[j++] = str[i++];
}
else{
if(str[i]!=’0′)
str1[j++] = str[i++];
else
i++;
}
}
str1[j]=’\0′;
//第二步 加上空格
i = j = 0;
str2[j++]=str1[i++];
while(str1[i]!=’\0′){
if(i%3==0)
str2[j++]=’ ‘;
str2[j++]=str1[i++];
}
str2[j]=’\0′;
fputs(str2,outFile);
fclose(inFile);
fclose(outFile);
return 0;
}