标签 代码段 下的文章

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

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

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

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

输出示例:

hello
olleh

- 阅读剩余部分 -

PHP each() list() 的作用与遍历数组

each()在一篇文章看到的时候第一反应:有点印象,但具体是干什么的已经记不起来了,查了手册之后:

返回数组中当前的键/值对并将数组指针向前移动一步

next的区别估计就在于是否返回值了,一个是键值对,一个是值,并且next()中有一句话:

Note: 你将无法区别包含数组尾以及 boolean FALSE 单元的数组。要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数。

看来next()有一定限制条件。

- 阅读剩余部分 -

MYSQL 从更换域名复习到的replace

还是手贱去买了那个域名,接下来我们要做的就是更换那些连接了,如果不使用SQL,更换是非常费劲的一件事情,而现在可以用语句来解决了,首先找到大致的位置,比如这次,我们找到数据库的表typecho_contents里记录的就是文字内容,可是如果用UPDATE ... WHERE ..=..用的是完全匹配,要用LIKE吗?我以前似乎也不是这样做的,去看了一下以前搬家的博文,看到了replace(),如法炮制。

Update 表名 SET 要替换的列=REPLACE(要替换的列,被替换的字符,替换后的字符)

于是用

UPDATE typecho_contents set text=replace(text, 'test.xsky.me', 'test.codesky.me');
UPDATE typecho_options set text=replace(value, 'learn.xsky.me', 'codesky.me');
UPDATE typecho_contents set text=replace(text, 'learn.xsky.me', 'codesky.me');

- 阅读剩余部分 -

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的联合就能实现,下面代码中所实现的是左边栏固定。

演示

- 阅读剩余部分 -

C 一个输入输出程序使各种符以可见方式显示

题目如下:

编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为\。这样可以将制表符和退回符以可见的方式显示出来。

首先我傻呵呵的被坑,因为这是在getchar()练习中,很自然的想到了putchar(),结果这货只能输出一个字符啊,怎么破,搜了一下,用printf()就好了……感觉简直坑。

- 阅读剩余部分 -

C 输入输出getchar()与putchar()

getchar()putchar()其实感觉也挺神奇,因为这货是读/写一个字符,书的引言就说C语言没有处理整个数组或字符串的操作,暂时也只看到这个,感觉还挺好玩的。

书上给的代码是:

#include <stdio.h>

main(void)
{
    int c;

    c = getchar();

    while (c != EOF) {
        putchar(c);
        c = getchar();
    }

}

- 阅读剩余部分 -

EOF到底是什么

EOF到底是什么,从我接触至今困惑了好久,于是去搜了一下,在阮一峰的博客找到了答案,算比较好懂的,不得不说这是个好博客=A=

EOF在书上,看了两本(才两本=A=),解释都是这样的:

EOF , end of file, 文件结束

啥,为什么文件结束会有个值,他要拿来干嘛?

而且在C中以前尝试过输出,输出结果为-1,这又是什么个情况?

- 阅读剩余部分 -

PHP 遍历目录实例

做文件管理的基础设施建设吧,嗯……反正还是打到打不开的思路来的。
这里为了后续方便,忽略了本目录.的显示,然后对于根目录不显示上一级的..

            $num = 0;    // 统计子目录和文件个数
            $problem = FALSE;
            $fileList = [];

            if (!empty($_GET['route'])) 
                $dirname = $_GET['route'];
            else 
                $dirname = 'upload';

            $dir_handle = @opendir($dirname);

            if (!file_exists($dirname)) 
                echo "<script>window.location.href='"."index.php';</script>";
            
            if (!$problem) {
                while ($file = readdir($dir_handle)) {
                    $dirFile = $dirname.'/'.$file;
                    if ($dirname == 'upload' && $file != '.' && $file != '..') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    } elseif ($dirname != 'upload' && $file != '.') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    }
                }
            }

            /*
            // 统计文件夹大小
            function dirSize($dir) {
                $dir_size = 0;

                if ($dirhandle = @opendir($dir)) {
                    while ($filename = readdir($dirhandle)) {
                        if ($filename != '.' && $filename != '..') {
                            $subFile = $dir.'/'.$filename;
                            if(is_dir($subFile)) 
                                $dir_size += dirSize($subFile);
                            if(is_file($subFile)) 
                                $dir_size += filesize($subFile);
                        }
                    }
                    closedir($dirhandle);
                    echo 'Hello';
                    return $dir_size;
                }
            }
            */

            @closedir($dir_handle);
            return $fileList;