😎Hello朋友你好!我是一名西安电子科技大学在校学生,🍉目前主要在做web方向,前端居多,别的方向也有尝试。
如果对博客内容有疑问,或者有想法,🎉欢迎私信或评论,看到一定会回复、尽力为大家解决问题!
如果你对web感兴趣,也欢迎👏一起交流讨论,比如学习路线、项目经验、技术点等等。
同时我会不定期写一些学习心得🦀、技术教程、项目教学等博客,希望能丰富大家的👉技术视野。
技术不易,我们,继续努力👏!
在C语言算法题目中,有一些常用的内置函数可以帮助我们更高效地完成题目,有很多内置函数就能实现的功能是不需要我们再花时间写的。以下是一些常用的内置函数(字符串、字符的题目,大多数都能用到内置函数去简化代码,画个重点):
strlen 函数用于计算字符串的长度,其函数原型为:
size_t strlen(const char *str);
其中 str 为需要计算长度的字符串。函数返回值为字符串的长度。
示例代码:
#include
#include int main()
{char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("该字符串的长度为:%ld\\n", strlen(str));return 0;
}
strcpy 函数用于将一个字符串复制到另一个字符串中,其函数原型为:
char *strcpy(char *dest, const char *src);
其中 dest 为目标字符串,src 为源字符串。函数返回值为目标字符串的指针。
示例代码:
#include
#include int main()
{char src[100], dest[100];printf("请输入一个字符串:");scanf("%s", src);strcpy(dest, src);printf("复制后的字符串为:%s\\n", dest);return 0;
}
strcat 函数用于将一个字符串连接到另一个字符串的末尾,其函数原型为:
char *strcat(char *dest, const char *src);
其中 dest 为目标字符串,src 为源字符串。函数返回值为目标字符串的指针。
示例代码:
#include
#include int main()
{char str1[100], str2[100];printf("请输入第一个字符串:");scanf("%s", str1);printf("请输入第二个字符串:");scanf("%s", str2);strcat(str1, str2);printf("连接后的字符串为:%s\\n", str1);return 0;
}
strcmp 函数用于比较两个字符串是否相同,其函数原型为:
int strcmp(const char *str1, const char *str2);
其中 str1 和 str2 为需要比较的两个字符串。如果 str1 等于 str2,则返回 0;如果 str1 小于 str2,则返回负数;如果 str1 大于 str2,则返回正数。
示例代码:
#include
#include int main()
{char str1[100], str2[100];printf("请输入第一个字符串:");scanf("%s", str1);printf("请输入第二个字符串:");scanf("%s", str2);int result = strcmp(str1, str2);if (result == 0){printf("两个字符串相同\\n");}else if (result < 0){printf("%s 小于 %s\\n", str1, str2);}else{printf("%s 大于 %s\\n", str1, str2);}return 0;
}
strchr 函数用于查找字符串中第一次出现指定字符的位置,其函数原型为:
char *strchr(const char *str, int c);
其中 str 为需要查找的字符串,c 为需要查找的字符。函数返回值为第一次出现该字符的位置,如果找不到,则返回 NULL。
示例代码:
#include
#include int main()
{char str[100], ch;printf("请输入一个字符串:");scanf("%s", str);printf("请输入要查找的字符:");scanf(" %c", &ch);char *ptr = strchr(str, ch);if (ptr == NULL){printf("未找到该字符\\n");}else{printf("该字符在字符串中的位置为:%ld\\n", ptr - str);}return 0;
}
strstr 函数用于查找字符串中第一次出现指定子串的位置,其函数原型为:
char *strstr(const char *str, const char *substr);
其中 str 为需要查找的字符串,substr 为需要查找的子串。函数返回值为第一次出现该子串的位置,如果找不到,则返回 NULL。
示例代码:
#include
#include int main()
{char str[100], substr[100];printf("请输入一个字符串:");scanf("%s", str);printf("请输入要查找的子串:");scanf("%s", substr);char *ptr = strstr(str, substr);if (ptr == NULL){printf("未找到该子串\\n");}else{printf("该子串在字符串中的位置为:%ld\\n", ptr - str);}return 0;
}
isalpha 函数用于判断一个字符是否为字母,其函数原型为:
int isalpha(int c);
其中 c 为需要判断的字符。如果 c 是字母,则返回非零值,否则返回 0。
示例代码:
#include
#include int main()
{char ch;printf("请输入一个字符:");scanf(" %c", &ch);if (isalpha(ch)){printf("%c 是一个字母\\n", ch);}else{printf("%c 不是一个字母\\n", ch);}return 0;
}
isdigit 函数用于判断一个字符是否为数字,其函数原型为:
int isdigit(int c);
其中 c 为需要判断的字符。如果 c 是数字,则返回非零值,否则返回 0。
示例代码:
#include
#include int main()
{char ch;printf("请输入一个字符:");scanf(" %c", &ch);if (isdigit(ch)){printf("%c 是一个数字\\n", ch);}else{printf("%c 不是一个数字\\n", ch);}return 0;
}
toupper 函数用于将一个字符转换为大写字母,其函数原型为:
int toupper(int c);
其中 c 为需要转换的字符。如果 c 是小写字母,则返回对应的大写字母,否则返回原字符。
示例代码:
#include
#include int main()
{char ch;printf("请输入一个字符:");scanf(" %c", &ch);printf("转换后的字符为:%c\\n", toupper(ch));return 0;
}
tolower 函数用于将一个字符转换为小写字母,其函数原型为:
int tolower(int c);
其中 c 为需要转换的字符。如果 c 是大写字母,则返回对应的小写字母,否则返回原字符。
示例代码:
#include
#include int main()
{char ch;printf("请输入一个字符:");scanf(" %c", &ch);printf("转换后的字符为:%c\\n", tolower(ch));return 0;
}
atoi 函数用于将一个字符串转换为整数,其函数原型为:
int atoi(const char *str);
其中 str 为需要转换的字符串。如果字符串表示的是一个整数,则返回对应的整数值,否则返回 0。
示例代码:
#include
#include int main()
{char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("转换后的整数为:%d\\n", atoi(str));return 0;
}
atof 函数用于将一个字符串转换为浮点数,其函数原型为:
double atof(const char *str);
其中 str 为需要转换的字符串。如果字符串表示的是一个浮点数,则返回对应的浮点数值,否则返回 0。
示例代码:
#include
#include int main()
{char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("转换后的浮点数为:%lf\\n", atof(str));return 0;
}
abs 函数用于计算整数的绝对值,其函数原型为:
int abs(int n);
其中 n 为需要计算绝对值的整数。函数返回值为 n 的绝对值。
示例代码:
#include
#include int main()
{int n;printf("请输入一个整数:");scanf("%d", &n);printf("该整数的绝对值为:%d\\n", abs(n));return 0;
}
labs 函数用于计算长整数的绝对值,其函数原型为:
long int labs(long int n);
其中 n 为需要计算绝对值的长整数。函数返回值为 n 的绝对值。
示例代码:
#include
#include int main()
{long int n;printf("请输入一个长整数:");scanf("%ld", &n);printf("该长整数的绝对值为:%ld\\n", labs(n));return 0;
}
scanf 函数用于从标准输入中读取数据,其函数原型为:
int scanf(const char *format, ...);
其中 format 为格式控制字符串,用于指定需要读取的数据的类型和格式。除格式控制字符串外,scanf 函数还需要指定需要读取的变量的地址。
示例代码:
#include int main()
{int a, b;printf("请输入两个整数:");scanf("%d%d", &a, &b);printf("您输入的两个整数分别为:%d 和 %d\\n", a, b);return 0;
}
printf 函数用于向标准输出中输出数据,其函数原型为:
int printf(const char *format, ...);
其中 format 为格式控制字符串,用于指定需要输出的数据的类型和格式。除格式控制字符串外,printf 函数还可以指定需要输出的变量的值。
示例代码:
#include int main()
{int a = 10, b = 20;printf("a = %d, b = %d\\n", a, b);return 0;
}
qsort 函数用于快速排序,其函数原型为:
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
其中 base 为待排序数组的起始地址,nmemb 为数组中元素的个数,size 为每个元素的大小,compar 为比较函数。比较函数用于比较两个元素的大小,如果返回值小于 0,则表示第一个元素小于第二个元素;如果返回值等于 0,则表示两个元素相等;如果返回值大于 0,则表示第一个元素大于第二个元素。
示例代码:
#include
#include int compare(const void *a, const void *b)
{return (*(int *)a - *(int *)b);
}