117.info
人生若只如初见

c语言字符串函数怎么定义

在C语言中,字符串函数可以通过以下两种方式定义:

  1. 使用字符数组作为参数和返回值
#include 

// 字符串长度
int my_strlen(char str[]) {
    int len = 0;
    while (str[len] != '\0') {
        len++;
    }
    return len;
}

// 字符串复制
void my_strcpy(char dest[], char src[]) {
    int i = 0;
    while (src[i] != '\0') {
        dest[i] = src[i];
        i++;
    }
    dest[i] = '\0';
}

// 字符串连接
void my_strcat(char dest[], char src[]) {
    int dest_len = my_strlen(dest);
    int i, j = 0;
    for (i = dest_len; src[j] != '\0'; i++, j++) {
        dest[i] = src[j];
    }
    dest[i] = '\0';
}

int main() {
    char str1[100] = "Hello";
    char str2[100] = "World";

    printf("str1 length: %d\n", my_strlen(str1));
    
    my_strcpy(str1, str2);
    printf("str1 after copy: %s\n", str1);
    
    my_strcat(str1, str2);
    printf("str1 after concatenation: %s\n", str1);

    return 0;
}
  1. 使用指针作为参数和返回值
#include 

// 字符串长度
int my_strlen(char *str) {
    int len = 0;
    while (*str != '\0') {
        len++;
        str++;
    }
    return len;
}

// 字符串复制
char* my_strcpy(char *dest, char *src) {
    char *p = dest;
    while (*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
    return p;
}

// 字符串连接
char* my_strcat(char *dest, char *src) {
    char *p = dest;
    while(*dest != '\0') {
        dest++;
    }
    while (*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0';
    return p;
}

int main() {
    char str1[100] = "Hello";
    char str2[100] = "World";

    printf("str1 length: %d\n", my_strlen(str1));
    
    my_strcpy(str1, str2);
    printf("str1 after copy: %s\n", str1);
    
    my_strcat(str1, str2);
    printf("str1 after concatenation: %s\n", str1);

    return 0;
}

无论使用字符数组还是指针,都可以实现相同的功能。但是需要注意指针的使用需要更谨慎,避免指针操作超出字符串的范围。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe725AzsLAAdSBFY.html

推荐文章

  • c语言怎么读取字符串的字符

    在C语言中,可以使用循环和数组的索引来逐个读取字符串的字符。下面是一种常见的方式:
    #include int main() { char str[100]; int i; printf("请输入一个字...

  • c语言输入字符串的方法

    在C语言中,可以使用scanf和gets函数来输入字符串。 使用scanf函数输入字符串: #include int main() { char str[100]; printf("请输入字符串:"); scanf("%s", ...

  • c语言程序是由什么构成的

    C语言程序由以下几部分构成: 预处理指令(Preprocessor directives):以"#"符号开头的指令,用于对源代码进行预处理操作,例如包含头文件、宏定义等。 函数(F...

  • c语言有没有bool类型

    在C语言中,没有内置的bool类型。然而,C99标准引入了stdbool.h头文件,其中定义了_Bool类型,以及true和false的宏定义。可以通过包含stdbool.h头文件来使用bool...

  • oracle怎么查看job状态

    要查看Oracle中的作业状态,可以使用以下方法之一:1、使用Oracle Enterprise Manager(OEM):登录到OEM控制台,导航到“作业”部分,然后选择要查看状态的作业...

  • spark提交任务的方式有哪几种

    Spark提交任务的方式有以下几种: 在命令行中使用spark-submit命令提交任务。这是最常见的方式,可以将任务的相关参数和选项以命令行的形式传递给spark-submit命...

  • linux中nginx启动停止命令是什么

    在Linux中,Nginx的启动和停止命令如下:启动Nginx服务:sudo systemctl start nginx停止Nginx服务:sudo systemctl stop nginx重启Nginx服务:sudo systemctl r...

  • Go语言中正则表达式的语法是什么

    Go语言中正则表达式的语法与其他语言中的正则表达式语法基本类似,但也有一些小的差异。以下是Go语言中常用的正则表达式语法: 字符匹配 .:匹配任意一个字符(除...