标签 源码 下的文章

C 删除C语言程序中的所有注释

题目:

编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套。

还是看答案吧,毕竟是导言,我并不指望自己能写出来,代码还是勉强能看懂的,就是处理引号部分还不大明白(如为什么echo_quote里搜索\\),留待以后回头再看看这个问题。

另外这个程序一个问题就是分段落输出,这样比较无力……不晓得是不是我码错了什么……换言之,确实它值得改进的地方还有很多,注释也自己乱加了点OTZ。

- 阅读剩余部分 -

C 编写函数实现函数字符串字符颠倒

这是K&R中的一道题目:

编写一个函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。

在PHP中曾经做过类似的题,见PHP 实现中文字符串截取无乱码,同样也是写reverse()函数,我相信C中也有现成的函数,因为编译器高亮颜色不一样。

输出示例:

hello
olleh

- 阅读剩余部分 -

C 输出菱形

受泽发来的贺电- -嗯……数学不是很好所以码了有一会儿吧。

数学不好搞算法好吃力……

输出比如下面一样的菱形:

   *
  ***
 *****
*******
 *****
  ***
   *

- 阅读剩余部分 -

C 打印输入中单词长度的直方图

导言中的题目,昨天我勉强算实现了输出,不过效果其实很糟糕,还是没有考虑今天发的那几个问题,下载好答案之后就看了看,题目意思也明白了:

原话:

编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易,垂直方向的直方图则要困难一些。

实际上,他是要统计,比如hello有5个字母,我只输入hello 那么5中就输出1,类似的hello world在5中就输出2

我当时实际上只是很简单的直方图了,而没有考虑本身,所以是个错误的答案。

同时我还在想,我怎么知道单词有多长呢——答案很好的解决了这个问题。

- 阅读剩余部分 -

C 一行输出一个单词

貌似以前也看到有一道题是这样的,这里发现了思维不够严密,比如我是这么写的:

#include <stdio.h>

#define IN 1
#define OUT 0

main(void)
{
    int c, state;

    while ((c = getchar()) != EOF) {
        if (c == '\t' || c == ' ')
            printf("\n");
        else
            putchar(c);
    }

    return 0;
}

- 阅读剩余部分 -

C 删除输入中多余空格

做到这样一题,是将其中多个空格替换为一个空格,回想起来PHP也有类似需求,暂时先mark一下这个方法。

我的想法是根据空格前面是否存在空格来控制空格的输出。(书中答案貌似更简练一些,直接加一个变量记录这次输出的值,用那个值来对比)

#include <stdio.h>

int space = 0;

int c;

main(void)
{
    while ((c = getchar()) != EOF) {
        if (c == ' ' && !space) {
            space = 1;
            putchar(c);
        } else if (c != ' ') {
            space = 0;
            putchar(c);
        }
    }

    return 0;
}

PHP中可以用转为数组-删除数组空白元素-转为字符串的方法,首尾部分空格可以用trim()处理

CSS 固定div不随屏幕滚动

固定某一元素不滚动感觉还是挺有用的,一侧边栏不动而滚另一侧,固定导航条,而固定footer则比较少见,关于footer,还要做一些特殊处理,之后会有说明。

当然,感觉代码还不好,需要改进=A=

左右比较简单,我们利用floatposition的联合就能实现,下面代码中所实现的是左边栏固定。

演示

- 阅读剩余部分 -