内置常用函数
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'));
}