内置常用函数

strlen() 统计字符串长度

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "hello world";
        int  length = strlen(a);
        printf("%d\n", length);
        return 0;
}

sizeof() 可统计数组长度

#include <stdio.h>
int main(){
        char a[100] = "hello world";
        int number = sizeof(a)/sizeof(a[0]);
        printf("%d\n", number);
        return 0;
}

strcat(str1, str2) 连接两字符串,后面的放入前面的

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "hello123";
        char b[100] = "world234";
        strcat(a, b);
        printf("%s\n", a);
        return 0;
}

strncat(str1, str2, number) 连接字符串,number表示连接str2的字符个数

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "hello123";
        char b[100] = "world234";
        int len = strlen(a);
        int number  = sizeof(a)/sizeof(a[0]);
        strncat(a, b, number - len);
        printf("%s\n", a);
        return 0;
}

strcmp(str1, str2) 比较两个字符串,相等返回0

#include <stdio.h>

int main(){
        char a[100] = "hello";
        char b[100] = "world";

        if(strcmp(a, b) == 0){
                printf("same string\n");
        }else{
                printf("diffent string\n");
        }
        return 0;
}


strncmp(str1, str2, length) 比较指定长度的字符串是否相等

#include <stdio.h>

int main(){
        char a[100] = "hello";
        char b[100] = "helld";

        if(strncmp(a, b, 3) == 0){
                printf("same string\n");
        }else{
                printf("diffent string\n");
        }
        return 0;
}

strcpy(str1, str2) 将第二个字符串拷贝到第一个 

#include <stdio.h>
#include <string.h>

int main(){
        char a[100] = "hello";
        char b[100] = "helld";
        strcpy(a, b);
        printf("%s\n", a);
        return 0;
}

strncpy(str1, str2, num) 将第二个字符串拷贝num个到第一个中

#include <stdio.h>
#include <string.h>

int main(){
        char a[10] = "hello";
        char b[100] = "helld hello hello hello";

        strncpy(a, b, sizeof(a) - 1);
        printf("%s\n", a);

        return 0;
}

sprintf(a, "%s", b) 将b的内容格式化后放到a中

#include <stdio.h>
int main(){
        char a[100];
        char b[100] = "world";
        sprintf(a, "%s", b);
        printf("%s\n", a);
        return 0;
}

sscanf(a, "%s", &i)  结果放在a里面

#include <stdio.h>

int main(){
        char a[100] = "67+34=";
        int i, j;
        char c;
        sscanf(a, "%d%c%d=", &i, &c, &j);
        int res = 0;
        switch(c){
        case '+':
                res = i + j;
                break;
        case '-':
                res = i - j;
                break;
        case '*':
                res = i * j;
                break;
        case '/':
                res = i / j;
                break;
        }
        sprintf(a, "%d%c%d=%d", i, c, j, res);
        printf("%s\n", a);
        return 0;
}

strchr(a, 'char')  返回某字符到结尾的所有字符串

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "hello world";
        char *s;
        s = strchr(a, 'o');
        if(s != NULL){
                printf("%s\n", s);
        }
        return 0;
}

strstr(a, "str")  返回某字符串到结尾的所有字符串

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "hello world";
        char *s;
        s = strstr(a, "wo");
        if(s != NULL){
                printf("%s\n", s);
        }
        return 0;
}

strtok(a, "str") 按字符串分割字符串

#include <stdio.h>
#include <string.h>
int main(){
        char a[200] = "php_is_best_language_in_the_world";
        char *s;
        s = strtok(a, "_");//用双引号
        while(s){
                printf("%s\n", s);
                s = strtok(NULL, "_");// 第一次调用第一个参数用写以后的都为NULL
        }
        return 0;
}

atoi() 将字符串转换为整数

#include <stdio.h>
#include <string.h>
int main(){
        char a[100] = "230";
        char b[100] = "323";
        int i;
        int j;
        i = atoi(a);
        j = atoi(b);
        printf("%d\n", i+j);
        return 0;
}

atof() 将字符串转换为浮点类型

#include <stdio.h>
#include <stdlib.h>
int main(){
        char a[100] = "230";
        char b[100] = "32.3";
        int i;
        double j;

        i = atoi(a);
        j = atof(b);
        printf("%f\n", i+j);
        return 0;
}

atol() 字符串转换为 long 类型

atoll() 字符串转换为 long long类型


函数的声明与定义


C语言中,定义函数要在使用之前,或者先声明。

#include <stdio.h>

int add(int a, int b){
        return a + b;
}
// 声明函数
void output();

int main(){
        int i = 1;
        int j = 3;
        int c = add(i,j);
        printf("%d\n", c);
        output();
}
void output(){
        printf("hello\n");
}

自定义大小写转换程序:

#include <stdio.h>

char trans(char c){
        if(c >= 'a' && c <= 'z'){
                return c - ' ';
        }
        if(c >= 'A' && c <= 'Z'){
                return c + ' ';
        }
}

int main(){
        printf("%c\n", trans('s'));
}