回 帖 发 新 帖 刷新版面

主题:C语言讨论区支持代码着色功能,欢迎试用并提意见

支持C/C++语法及大部分函数的着色,使用方法:
在需要贴代码的地方,在代码前后加上如下标签:

[b][[/b][b]code=c[/b][b]][/b]
您的代码
[b][[/b][b]/code[/b][b]][/b]


着色演示:
[code=c]
#include "stdio.h"
main() 

    int a[ 100] , n , i , j , t ; 
    scanf("%d", &n) ; 
    for( i=1 ; i<=n ; i++) 
        scanf("%d", &a[i]) ; 
        for( j=1; j<=n-1; j++) 
            for( i=1 ; i<=n-j ; i++)
                if (a[i]>a[i+1]) 
                { 
                    t=a[i]; a[i]=a[i+1]; a[i+1]=t; 
                } 
    for( i=1 ; i<=n ; i++) 
        printf("%d ", a[i] ); 
}
[/code]



欢迎大家多提意见!谢谢大家!

回复列表 (共29个回复)

沙发

[code=c]
class T
{
public:
 T(){}
 ~T(){}
};
[/code]

c++支持不? 着色的颜色可以设定不?

板凳

强啊。。。。。
[code=c]
#include <stdio.h>
int main()
{
    for(;;)
    {
        char num[101];//="0000000000";
        int nc, ni=0, t;
        while((nc = getchar()) != '+')
        {
            num[ni++] = nc - '0';
        }
        while(ni<=100)num[ni++]=0;
        ni = 0, t = 0;
        for(;(nc = getchar()) != '=';ni++)
        {
            num[ni] += nc - '0' + t;
            if(num[ni]>9)t = 1, num[ni] -= 10; else t = 0;
        }
        for(;ni<=100;ni++)
        {
            num[ni] += t;
            if(num[ni]>9)t = 1, num[ni] -= 10; else t = 0;
        }
        ni = 0, t = 0;
        while(nc = getchar(), '0'<=nc && nc<='9')
        {
            if(num[ni++]+'0' != nc) t = 1;
        }
        if(t)printf("Wrong\n");else printf("Right\n");
        if(nc == EOF)break;
    }
    return 0;
}
[/code]

3 楼

字母减零=该字母对应的adcii码,是吗?

4 楼

[code=c]
#include <iostream>
using namespace std;

class Date{
    int da, mo, yr;
public:
    Date(int d =2, int m = 1, int y = 1)
    {
        da = d;
        mo = m;
        yr = y;
    }
    operator long();
    operator double();
};

Date::operator long()
{
    long days = da * mo * yr;
    
    return days;
}

Date::operator double()
{
    double days = da * mo * yr * 0.1;
    
    return days;
}

int main()
{
    Date x(8, 2, 3);
    Date y;
    long a = x;
    double b = y;
    
    cout << "a=" << a << "\n";
    cout << "b=" << b << "\n";
    
    getchar();
    return 0;
}
[/code]

5 楼

把字体弄成FixedSys好像比较舒服。
最好就是配成VC6.0下面的那种格式,看着亲切。

6 楼

[code=c]
main()
{
  int i,j,p,q,s,a[10];
  printf("\n input 10 numbers:\n");
  for(i=0;i<10;i++)
      scanf("%d",&a[i]);
  for(i=0;i<10;i++){
      p=i;q=a[i];
      for(j=i+1;j<10;j++)
      if(q<a[j]) { p=j;q=a[j]; }
      if(i!=p)
        {s=a[i];
         a[i]=a[p];
         a[p]=s; }
      printf("%d",a[i]);
  }
}
[/code]

呵呵,好玩。。。

7 楼

[quote]把字体弄成FixedSys好像比较舒服。
最好就是配成VC6.0下面的那种格式,看着亲切。[/quote]
偶喜欢宋体,VC6的字体和颜色偶都改掉了

8 楼

[code=c]
#include <stdio.h>
int main(void)
{
    printf("别的区啥时也能这样呢?\n");
    return 0;
}
[/code]

9 楼

一个纠错:

  行注释正则表达式应该如下(js版):

/\/\/[\s\S]*?[^\\]??(?=\n)/mg

一个建议:
  预处理建议使用:

/^[\s]*#(?:[^\\\n]|\\[^\n\w]*[\n\w])*/mg

10 楼

好像你的字符串判断也有问题!

不过字符串的判断很麻烦,因为你需要考虑字符串前缀“L”(字符也是一样....)

你可以分两种情况来判断:

如下:

\bL".+?" 和 ".+?"

(没有考虑多行的情况。)

我来回复

您尚未登录,请登录后再回复。点此登录或注册