栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现自定义字符串(长度计算、比较、连接、拷贝)等函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现自定义字符串(长度计算、比较、连接、拷贝)等函数

#include
#include
#include

void output(const char *s1) {
    printf("The string is:");
    printf("%s", s1);
    printf("n------------------n");
}
//计算字符串长度函数
char my_strlen(const char *s2){
    int i = 0;
    while (*s2 != '') {
        s2++;
        i++;
    }
    printf("The length of string is:");
    printf("%dn", i);
}
//字符串比较大小函数
char my_strcmp(const char *d, const char *s) {
    while (*d == *s) {
        d++;
        s++;
        if (*d == '') {
            return 0;
        }
    }
    return *d > *s ? 1 : -1;
}
//任意长度字符串比较大小函数
char my_strncmp(const char *s1, const char *s2, size_t n) {
    while (*s1 == *s2 && (n--) && *s1 != '' && *s2 != '') {
        s1++;
        s2++;
    }
    if ((*s1 - *s2) == 0)
        return 0;
    else if ((*s1 - *s2) > 0)
        return 1;
    else
        return -1;
}
//字符串长度连接函数
char *my_strcat(char *dest, const char *src) {
    int i;
    int j;
    for (i = 0; dest[i] != ''; i++) {}
    for (j = 0; src[j] != ''; j++,i++) {
        dest[i] = src[j];
    }
    dest[i] = '';        
    
    return dest;
}
//任意字符串长度连接函数
char *my_strncat(char* dest, const char* src, size_t n) {
    int i;
    int j;
    for (i = 0; dest[i] != ''; i++) {}
    for (j = 0; j < n && src[j] != ''; j++, i++) {
        dest[i] = src[j];
    }
    dest[i] = '';
    return dest;
}
//字符串长度拷贝函数
char *my_strcpy(char *dest, const char *src) {
    int i;
    for (i = 0; src[i] != ''; i++) {
        dest[i] = src[i];
    }
    dest[i] = '';
    return dest;
}
//任意字符串长度拷贝函数
char *my_strncpy(char *dest, const char *src, size_t n) {
    int i;
    for (i = 0; src[i] != '' && i < n; i++) {
        dest[i] = src[i];
    }
    for (; i < n; i++)
        dest[i] = '';
    return dest;
}

int main() {

    const char *src = "Cai cai kun is the sleaziest!";
    char dest[56] = {};
    output(src);
    my_strlen(src);
    printf("-----------------n");

    my_strcmp(dest, src);
    printf("%dn", my_strcmp(dest, src));
    printf("%dn", strcmp(dest, src));
    printf("%dn", my_strcmp("Cai cai kun is the sleaziest!",src));
    printf("%dn", my_strcmp("Cai is the sleaziest!",src));
    printf("-----------------n");

    int N = 0;
    my_strncmp(dest, src, N);
    printf("%dn", my_strncmp("Cai cai is the sleaziest!", src, 3));
    printf("%dn", my_strncmp("Cai cai kun is the weakest!", src, 20));
    printf("%dn", strncmp("Cai cai kun is the weakest!", src, 20));
    printf("-----------------n");
//    字符串在比较之后有可能返回字符之间的ASCII差值
    my_strcat(dest, src);
    printf("Before: %sn", src);
    printf("Before: %sn", dest);
    bzero(dest, 56);
    printf("After bzero: %sn", dest);
    printf("After strcat: %sn", my_strcat(dest, "cai xu kun"));
    printf("-----------------n");

    my_strncat(dest, src, N);
    printf("Before: %sn", src);
    printf("Before: %sn", dest);
    bzero(dest, 56);
    printf("After bzero: %sn", dest);
    printf("After strncat: %sn", my_strncat(dest, "cai xu kun", 5));
    printf("-----------------n");

    printf("Before: %sn", src);
    printf("Before: %sn", dest);
    bzero(dest, 56);
    printf("After bzero: %sn", dest);
    my_strcpy(dest, src);
    printf("After strcpy: %sn", my_strcpy(dest, src));
    printf("-----------------n");

    my_strncpy(dest, src, N);
    printf("Before: %sn", src);
    printf("Before: %sn", dest);
    bzero(dest, 56);
    printf("After bzero: %sn", dest);
    printf("After strncpy: %sn", strncpy(dest, src, 11));

    return 0;

}

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号