亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? strlib.c

?? 國外經典教材《程序設計抽象思想—C語言描述》一書中的關鍵性庫文件
?? C
字號:
/* * File: strlib.c * Last modified on Fri Jul 15 14:10:41 1994 by eroberts * ----------------------------------------------------- * This file implements the strlib interface. *//* * General implementation notes: * ----------------------------- * This module implements the strlib library by mapping all * functions into the appropriate calls to the ANSI <string.h> * interface.  The implementations of the individual functions * are all quite simple and do not require individual comments. * For descriptions of the behavior of each function, see the * interface. */#include <stdio.h>#include <string.h>#include <ctype.h>#include "genlib.h"#include "strlib.h"/* * Constant: MaxDigits * ------------------- * This constant must be larger than the maximum * number of digits that can appear in a number. */#define MaxDigits 30/* Private function prototypes */static string CreateString(int len);/* Section 1 -- Basic string operations */string Concat(string s1, string s2){    string s;    int len1, len2;    if (s1 == NULL || s2 == NULL) {        Error("NULL string passed to Concat");    }    len1 = strlen(s1);    len2 = strlen(s2);    s = CreateString(len1 + len2);    strcpy(s, s1);    strcpy(s + len1, s2);    return (s);}char IthChar(string s, int i){    int len;    if (s == NULL) Error("NULL string passed to IthChar");    len = strlen(s);    if (i < 0 || i > len) {        Error("Index outside of string range in IthChar");    }    return (s[i]);}string SubString(string s, int p1, int p2){    int len;    string result;    if (s == NULL) Error("NULL string passed to SubString");    len = strlen(s);    if (p1 < 0) p1 = 0;    if (p2 >= len) p2 = len - 1;    len = p2 - p1 + 1;    if (len < 0) len = 0;    result = CreateString(len);    strncpy(result, s + p1, len);    result[len] = '\0';    return (result);}string CharToString(char ch){    string result;    result = CreateString(1);    result[0] = ch;    result[1] = '\0';    return (result);}int StringLength(string s){    if (s == NULL) Error("NULL string passed to StringLength");    return (strlen(s));}string CopyString(string s){    string newstr;    if (s == NULL) Error("NULL string passed to CopyString");    newstr = CreateString(strlen(s));    strcpy(newstr, s);    return (newstr);}/* Section 2 -- String comparison functions */bool StringEqual(string s1, string s2){    if (s1 == NULL || s2 == NULL) {        Error("NULL string passed to StringEqual");    }    return (strcmp(s1, s2) == 0);}int StringCompare(string s1, string s2){    if (s1 == NULL || s2 == NULL) {        Error("NULL string passed to StringCompare");    }    return (strcmp(s1, s2));}/* Section 3 -- Search functions */int FindChar(char ch, string text, int start){    char *cptr;    if (text == NULL) Error("NULL string passed to FindChar");    if (start < 0) start = 0;    if (start > strlen(text)) return (-1);    cptr = strchr(text + start, ch);    if (cptr == NULL) return (-1);    return ((int) (cptr - text));}int FindString(string str, string text, int start){    char *cptr;    if (str == NULL) Error("NULL pattern string in FindString");    if (text == NULL) Error("NULL text string in FindString");    if (start < 0) start = 0;    if (start > strlen(text)) return (-1);    cptr = strstr(text + start, str);    if (cptr == NULL) return (-1);    return ((int) (cptr - text));}/* Section 4 -- Case-conversion functions */string ConvertToLowerCase(string s){    string result;    int i;    if (s == NULL) {        Error("NULL string passed to ConvertToLowerCase");    }    result = CreateString(strlen(s));    for (i = 0; s[i] != '\0'; i++) result[i] = tolower(s[i]);    result[i] = '\0';    return (result);}string ConvertToUpperCase(string s){    string result;    int i;    if (s == NULL) {        Error("NULL string passed to ConvertToUpperCase");    }    result = CreateString(strlen(s));    for (i = 0; s[i] != '\0'; i++) result[i] = toupper(s[i]);    result[i] = '\0';    return (result);}/* Section 5 -- Functions for converting numbers to strings */string IntegerToString(int n){    char buffer[MaxDigits];    sprintf(buffer, "%d", n);    return (CopyString(buffer));}int StringToInteger(string s){    int result;    char dummy;    if (s == NULL) {        Error("NULL string passed to StringToInteger");    }    if (sscanf(s, " %d %c", &result, &dummy) != 1) {        Error("StringToInteger called on illegal number %s", s);    }    return (result);}string RealToString(double d){    char buffer[MaxDigits];    sprintf(buffer, "%G", d);    return (CopyString(buffer));}double StringToReal(string s){    double result;    char dummy;    if (s == NULL) Error("NULL string passed to StringToReal");    if (sscanf(s, " %lg %c", &result, &dummy) != 1) {        Error("StringToReal called on illegal number %s", s);    }    return (result);}/* Private functions *//* * Function: CreateString * Usage: s = CreateString(len); * ----------------------------- * This function dynamically allocates space for a string of * len characters, leaving room for the null character at the * end. */static string CreateString(int len){    return ((string) GetBlock(len + 1));}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产精品久久久| 亚洲v日本v欧美v久久精品| 精品嫩草影院久久| 91精品欧美综合在线观看最新| 亚洲人成网站色在线观看| 3d动漫精品啪啪一区二区竹菊 | 九九精品一区二区| 一区二区三区精品在线| 亚洲精品国产品国语在线app| 自拍偷拍欧美精品| |精品福利一区二区三区| 国产精品久久久久一区| 亚洲欧洲精品天堂一级| 亚洲精品视频一区二区| 亚洲综合成人网| 亚洲成av人片在线观看无码| 肉肉av福利一精品导航| 久久国内精品自在自线400部| 国产精品99久久久久久久女警| 成人一区二区三区| 日韩欧美国产一区二区在线播放| 成人黄色a**站在线观看| 成人中文字幕电影| 91久久精品一区二区二区| 在线一区二区观看| 在线播放/欧美激情| 久久嫩草精品久久久精品一| 国产精品盗摄一区二区三区| 亚洲一区二区美女| 国模冰冰炮一区二区| 成人h精品动漫一区二区三区| 欧美在线免费视屏| 久久九九久久九九| 亚洲精品国产第一综合99久久| 男人的天堂亚洲一区| 成人美女在线观看| 欧美一区二区成人| 国产精品日韩精品欧美在线| 亚洲成人动漫在线免费观看| 国产成人av影院| 欧美日韩mp4| 国产精品欧美经典| 免费高清成人在线| 国产欧美日韩三区| 国产在线一区二区| 欧美大片一区二区| 一本色道久久综合亚洲aⅴ蜜桃 | 精品国产三级a在线观看| 久久久久久一级片| 亚洲国产毛片aaaaa无费看 | 亚洲精品第1页| 狠狠久久亚洲欧美| 欧美日韩在线播放一区| 国产精品初高中害羞小美女文| 日韩不卡一区二区| 欧美性大战久久| 亚洲一区二区三区四区在线观看 | 国产目拍亚洲精品99久久精品| 亚洲一区二区三区国产| 91在线视频免费91| 国产精品美女视频| 国产大片一区二区| 奇米精品一区二区三区在线观看| 一区二区三区不卡视频| 99精品国产热久久91蜜凸| 日韩欧美一区二区不卡| 午夜a成v人精品| 欧美日韩国产首页在线观看| 亚洲色欲色欲www在线观看| 高清不卡一区二区| 久久久精品国产99久久精品芒果 | 欧美一卡2卡三卡4卡5免费| 一区二区三区久久久| 色屁屁一区二区| 亚洲人成网站在线| 在线中文字幕一区| 亚洲精品视频一区| 91久久精品一区二区二区| 一区二区三区精品视频| 欧美在线免费视屏| 亚洲福利一二三区| 91精品国产欧美一区二区成人| 亚洲成av人片一区二区梦乃 | 蜜桃精品视频在线| 精品日韩在线一区| 国产精品白丝jk黑袜喷水| 久久精品人人做| av一区二区三区在线| 亚洲少妇屁股交4| 欧美日韩国产免费| 极品少妇一区二区三区精品视频 | 欧美日韩国产另类不卡| 午夜电影一区二区| 2023国产一二三区日本精品2022| 国产一区在线视频| 成人欧美一区二区三区小说| 欧美中文字幕久久| 九九精品视频在线看| 国产欧美精品一区二区三区四区| 成人黄动漫网站免费app| 亚洲精品国产一区二区三区四区在线| 欧美日韩一级片在线观看| 久久精品国产精品亚洲红杏| 日本一区二区视频在线| 色先锋资源久久综合| 免费在线观看不卡| 国产精品国产三级国产普通话99| 91搞黄在线观看| 国产专区综合网| 亚洲自拍另类综合| 久久综合丝袜日本网| 欧洲av一区二区嗯嗯嗯啊| 麻豆一区二区三区| 亚洲男女一区二区三区| 在线不卡免费av| 91在线精品一区二区| 久久er99精品| 亚洲一二三区视频在线观看| 国产免费成人在线视频| 欧美精品久久久久久久多人混战 | 欧美一级搡bbbb搡bbbb| 国产黄色精品视频| 日韩经典一区二区| 亚洲三级久久久| 欧美www视频| 欧美老女人第四色| 99久久精品免费观看| 韩国一区二区在线观看| 亚洲第一主播视频| 亚洲欧美aⅴ...| 亚洲国产精品精华液ab| 日韩欧美区一区二| 欧美挠脚心视频网站| 99精品在线免费| 成人一区二区三区视频| 久久99热这里只有精品| 亚洲bdsm女犯bdsm网站| 亚洲欧美偷拍三级| 中文字幕一区视频| 国产三级精品视频| 久久久久国产精品厨房| 精品1区2区在线观看| 日韩欧美一级二级| 欧美一卡2卡3卡4卡| 一区二区三区日本| 在线观看一区不卡| 自拍偷拍欧美精品| 欧美国产亚洲另类动漫| 精品粉嫩aⅴ一区二区三区四区| 717成人午夜免费福利电影| 91久久免费观看| 欧美在线视频日韩| 在线免费精品视频| 欧美亚洲一区二区在线| 欧美午夜宅男影院| 欧美色图在线观看| 欧美日韩精品一区视频| 欧美日韩精品一区视频| 欧美色精品天天在线观看视频| 在线观看91精品国产入口| 91亚洲永久精品| 色中色一区二区| 欧美三级日韩三级国产三级| 欧美日韩亚洲另类| 日韩一级精品视频在线观看| 精品三级av在线| 国产三级一区二区| 亚洲欧洲日产国产综合网| 亚洲三级久久久| 91精品国产欧美一区二区成人 | 日韩一级完整毛片| 在线成人av网站| 精品国产91亚洲一区二区三区婷婷 | 秋霞影院一区二区| 久久99深爱久久99精品| 国产91高潮流白浆在线麻豆| 成人免费视频一区二区| 97se亚洲国产综合在线| 欧美伊人久久大香线蕉综合69| 7777精品久久久大香线蕉| 久久理论电影网| 亚洲一区二区中文在线| 毛片av一区二区| 99精品国产99久久久久久白柏| 欧美中文字幕一二三区视频| 日韩三级高清在线| 国产精品国产自产拍高清av王其| 亚洲一区二区视频在线观看| 久久99精品国产91久久来源| 一本到一区二区三区| 欧美大片顶级少妇| 亚洲人吸女人奶水| 久久日韩精品一区二区五区| 国产精品初高中害羞小美女文| 美女视频黄免费的久久| 精品国产99国产精品| 99精品视频一区二区| 日韩国产精品久久久| 国产亚洲成av人在线观看导航 | 免费看精品久久片|