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);
}