| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:注释程序最后那出问题了?
只看楼主 加入收藏
努力C语言
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
注释程序最后那出问题了?
#include"stdio.h"
void progress(char* str){
char *beg,*tmp,rt=0;
while(*str)//rt表示是否注释
{
if(*str=='\"')
{
while(*++str!='\"')
if(*str=='\\')str++;
str++;
}
else if(rt==0 && *str=='/')
{
beg=str++;
if(*str=='*' || *str=='/')
rt=(*str=='*')+1;
}
else if( (rt==1 && *str=='\n') || (rt==2 && (*str=='*' && *++str=='/')) )
{
tmp=beg;str++;
while(*beg++=*str++);
str=tmp;rt=0;
}
else
str++;
}
}
int main(){
char str[]="//============\n //simplest program\n//==============\n#include<iostream>\nusing namespace std;\n//----------------\nint main(){\ncount<<\"hello world!\n\";\n}//--------";
printf(str);
printf("\n***********************\n");
progress(str);
printf("\n***********************\n");
printf(str);
getchar();
return 0;
}
中显示结果最后面//---------去不掉这么回事?
搜索更多相关主题的帖子: include 
2013-07-18 15:38
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
你调试一下?自己写的算法自己最明白了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-07-19 08:12
岁月如刀
Rank: 6Rank: 6
来 自:冰冻星球
等 级:侠之大者
威 望:7
帖 子:165
专家分:477
注 册:2013-7-21
收藏
得分:10 
楼主, 你这代码写的。。

哥们看着真费劲。。。

不过,还是帮你打个补丁先。

程序代码:
#include"stdio.h"

void progress(char*str)
{
    char*beg,*tmp,rt=0 ;
    int sign = 0;
    
    //rt±íê¾êÇ·ñ×¢êí 
    while(*str || sign)
    {
        if(*str=='\"')
        {
            while(*++str!='\"')
            if(*str=='\\')str++;
            str++;
        }
        else if(rt==0&&*str=='/')
        {
            beg=str++;
            if(*str=='*'||*str=='/')
            rt=(*str=='*')+1 ;
        }
        else if(rt==1 && *str=='\n'
                    ||(rt==2 && (*str=='*'&&*++str=='/'))
                    || sign == 1)
        {
            tmp=beg ;
            if(*str == '\0') {
                *beg = '\0';
            }
            else {
                str++;
                while(*beg++=*str++);
            }
            
            str=tmp ;
            rt=0 ;
            sign = 0;
        }
        else {
            if(rt == 1 && *(str + 1) == '\0') {
                sign = 1;
            }
            str++;
        }
    }
}

int main()
{
    char str[]="//============\n //simplest program\n//==============\n#include<iostream>\nusing namespace std;\n//----------------\nint main(){\ncount<<\"hello world!\n\";\n}//--------" ;
    char test[] = "//1234123";
    
    
    printf(str);
    printf("\n***********************\n");
    progress(str);
    printf("\n***********************\n");
    printf(str);
    
    getchar();
    return 0 ;
}

Now. Game over.
2013-07-21 23:32
岁月如刀
Rank: 6Rank: 6
来 自:冰冻星球
等 级:侠之大者
威 望:7
帖 子:165
专家分:477
注 册:2013-7-21
收藏
得分:0 
给你个小工具格式化你的代码

http://www.

Now. Game over.
2013-07-21 23:35
holy__shit
Rank: 2
等 级:论坛游民
帖 子:21
专家分:55
注 册:2013-8-23
收藏
得分:0 
回复 楼主 努力C语言
想想双引号的作用!

羁绊太多,只会迷失自我!
2013-08-26 19:54
快速回复:注释程序最后那出问题了?
数据加载中...
 
   



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

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