C 一个程序查找基本语法错误
题目如下:
编写一个程序,查找C语言程序中的基本语法错误,如圆括号方括号花括号不能配对等。要正确处理引号(包括单引号和双引号),转义字符序列与注释。
当然只是基础版的,其中部分代码在:C 删除C语言程序中的所有注释一样。
源码:
题目如下:
编写一个程序,查找C语言程序中的基本语法错误,如圆括号方括号花括号不能配对等。要正确处理引号(包括单引号和双引号),转义字符序列与注释。
当然只是基础版的,其中部分代码在:C 删除C语言程序中的所有注释一样。
源码:
题目:
编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套。
还是看答案吧,毕竟是导言,我并不指望自己能写出来,代码还是勉强能看懂的,就是处理引号部分还不大明白(如为什么echo_quote
里搜索\\
),留待以后回头再看看这个问题。
另外这个程序一个问题就是分段落输出,这样比较无力……不晓得是不是我码错了什么……换言之,确实它值得改进的地方还有很多,注释也自己乱加了点OTZ。
这是K&R中的一道题目:
编写一个函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。
在PHP中曾经做过类似的题,见PHP 实现中文字符串截取无乱码,同样也是写reverse()
函数,我相信C中也有现成的函数,因为编译器高亮颜色不一样。
输出示例:
hello
olleh
导言中的题目,昨天我勉强算实现了输出,不过效果其实很糟糕,还是没有考虑今天发的那几个问题,下载好答案之后就看了看,题目意思也明白了:
原话:
编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易,垂直方向的直方图则要困难一些。
实际上,他是要统计,比如hello
有5个字母,我只输入hello
那么5中就输出1,类似的hello world
在5中就输出2
我当时实际上只是很简单的直方图了,而没有考虑本身,所以是个错误的答案。
同时我还在想,我怎么知道单词有多长呢——答案很好的解决了这个问题。
貌似以前也看到有一道题是这样的,这里发现了思维不够严密,比如我是这么写的:
#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;
}
做到这样一题,是将其中多个空格替换为一个空格,回想起来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()
处理
固定某一元素不滚动感觉还是挺有用的,一侧边栏不动而滚另一侧,固定导航条,而固定footer则比较少见,关于footer,还要做一些特殊处理,之后会有说明。
当然,感觉代码还不好,需要改进=A=
左右比较简单,我们利用float
和position
的联合就能实现,下面代码中所实现的是左边栏固定。