#include
#define MAXIMUM 1000 //这段代码是要实现将一个字符串中的连续的空格用数
int getline(char line[]); //较少的指标符和空格代替,请指点,如其中有什么低等
main(){ //错误也请大神们指点,本人新手只懂皮毛,谢谢。
int len;
char line[MAXIMUM];
char newline[MAXIMUM];
int j;
int k = 0;
int ecount;
int n;
while((len = getline(line) > 0)){
for(j = 0;j < len;j++){
if(line[j] != ' ')
newline[k++] = line[j];
else if(line[j] == ' '){
while(line[j++] == ' '){
ecount++;
}
if(ecount == 1){
newline[k++] = ' ';
}else if(ecount == 2){
newline[k++] = ' ';
newline[k++] = ' ';
}else if(ecount >= 3){
for(n = 0;n <(ecount - (ecount%3))/3;n++){
newline[k++] = '\t';
}
for(n = 0;n < (ecount%3);n++){
newline[k++] = ' ';
}
}
newline[k++] = line[j];
}
}
}
printf("%s\n",newline);
return 0;
}
int getline(char line[]){
int i;
int c;
for(i = 0;(c = getchar()) != EOF&&c != '\n';i++)
line[i] = c;
if(c = '\n'){
line[i] = c;
i++;
}
line[i] = '\0';
return i;
}
C语言请大神帮忙找BUG
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答
- pengyue_gg 2016-05-02 07:47关注
错误太多,排版啦、== 用错成 = 啦、循环计数各种乱啦,回去再学学吧
#include <stdio.h> #define MAXIMUM 1000 int getline(char * line); int main(){ int len; char line[MAXIMUM]; char newline[MAXIMUM]; while((len = getline(line)) > 0){ int j = 0; int k = 0; printf("src[%d]:%s\n", len, line); for(j = 0; j < len; ){ if(line[j] != ' ') newline[k++] = line[j++]; else { int ecount = 0; int i = j; while(line[i++] == ' ')ecount++; j += ecount; int tab_count = ecount / 3; int space_count = ecount - tab_count * 3; int n; //你用tab和空格调试的时候能看见吗??? for(n = 0; n < tab_count; n++)newline[k++] = '#'; for(n = 0; n < space_count; n++)newline[k++] = '_'; } } //newline[len] = '\0'; printf("k:%d %s\n",k, newline); } return 0; } int getline(char * line){ int i, c; for(i = 0; (c = getchar()) != EOF && c != '\n'; i++) line[i] = c; if(line[0] == '\0')return 0; line[i] = '\0'; return i; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料