本文发布于 767 天前。
部分内容复制自菜鸟教程
字节类型判断
#include <ctype.h>
// 以下函数均为判断字节
int function(int c);
- isblank()
- isdigit()
- isalpha()
- isxdigit()
- islower()
- isupper()
- tolower()
- toupper()
- isspace()
- iscntrl()
- ispunct()
- isprint()
- isgraph()
注意,以上函数返回true or false,true可能为任意一个非0正数,而不是永远是1.
转换字符串<->数
#include <stdlib.h>
#include <stdio.h>
// string to integer
char str[10] = "122";
int x = atoi(str);
// string to double
char str[30] = "20.30 aaa";
char *prt;
ret = strtod(str, &ptr);
// ret=20.30000, ptr=" aaa"
// string to float
char str[10] = "122";
float x = atof(str);
// string to long
char str[10] = "122";
long x = atol(str);
标准输入输出
#include <stdlib.h>
#include <stdio.h>
// 返回第一个字符
char a;
a = getchar();
printf("%c\n", a);
// 安全的输入
fgets(str, 7, stdin); /*从输入流stdin即输入缓冲区中读取7个字符到字符数组str中*/
// 打印字符串
puts("Hello world");
//printf也可以
// 把内容存进字符串中
char a[20];
sprintf(a, "Hello world %d\n", 5);
printf("%s\n", a);
// Hello world 5
// 从字符串中提取内容并存入字符串
char dtm[100] = "Friday October 29 2021";
sscanf(dtm, "%s %s %d %d", weekday, month, &day, &year);
// 显示一个字符
putchar('a');
复制字符串
char src[]="aaabbb";
char dest[15];
strcpy(dest, src);
// dest="aaa"
strncpy(dest, src, 4);
// dest="aaab"
连接字符串
char str1[100]="AAA", str2[100]="BBB";
strcat(str1, str2);
// str1="AAABBB"
strncat(str1, str2, 2);
// str1="AAABB"
字符串比较
char str1[100]="AAA", str2[100]="AAB";
int res = strcmp(str1, str2);
// res != 0
int res = strncmp(str1, str2, 2);
// res == 0
字符串中搜索字符
第一次出现
#include <stdio.h>
#include <string.h>
int main ()
{
const char str[] = "http://www.runoob.com";
const char ch = '.';
char *ret;
ret = strchr(str, ch);
printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
return(0);
}
// |.| 之后的字符串是 - |.runoob.com|
最后一次出现
#include <stdio.h>
#include <string.h>
int main ()
{
int len;
const char str[] = "https://www.runoob.com";
const char ch = '.';
char *ret;
ret = strrchr(str, ch);
printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
return(0);
}
// |.| 之后的字符串是 - |.com|
检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
#include <stdio.h>
#include <string.h>
int main ()
{
int len;
const char str1[] = "ABCDEFG019874";
const char str2[] = "ABCD";
len = strspn(str1, str2);
printf("初始段匹配长度 %d\n", len );
return(0);
}