这个题目的意思不是让你举例还有没有类似的函数,是让你自定义函数来实现上面的功能。需要的话我帮你写一下
(1)replace函数:
运行结果:
代码:
#include <stdio.h>
void replace(char* s1, int p, int n, char* s2);
int main()
{
char s1[100] = "ABCDEFG";
char s2[100] = "1234";
replace(s1, 3, 2, s2);
printf("%s\n", s1);
return 0;
}
void replace(char* s1, int p, int n, char* s2)
{
int i, len = 0, k;
char tmp[1000] = { 0 };
//先将s1中的p-1+n位置的字符串备份
for (i = p - 1 + n; s1[i] != '\0'; i++)
tmp[len++] = s1[i];
//将s2插入s1
for (i = 0; s2[i] != '\0'; i++)
s1[i + p - 1] = s2[i];
k = i;
//将tmp中的数据移动回去
for (i = 0; i < len; i++)
s1[p - 1 + k + i] = tmp[i];
s1[p - 1 + k + i] = '\0';
}
(2)
代码:
#include <stdio.h>
void join(char* s1, char* s2);
int main()
{
char s1[100] = "ABCD";
char s2[100] = "*";
join(s1, s2);
printf("%s\n", s1);
return 0;
}
void join(char* s1, char* s2)
{
int i, j, k=0;
char tmp[1000];
for (i = 0; s1[i] != '\0'; i++)
{
tmp[k++] = s1[i];
if (s1[i + 1] == '\0')
break;
for (j = 0; s2[j] != '\0'; j++)
tmp[k++] = s2[j];
}
for (i = 0; i < k; i++)
s1[i] = tmp[i];
s1[i] = '\0';
}
(3)
代码:
#include <stdio.h>
void swapcase(char* s1);
int main()
{
char s1[100] = "ABcd1234";
swapcase(s1);
printf("%s\n", s1);
return 0;
}
void swapcase(char* s1)
{
int i = 0;
if (s1[i] >= 'A' && s1[i] <= 'Z')
s1[i] = 'a' + (s1[i] - 'A');
else if (s1[i] >= 'a' && s1[i] <= 'z')
s1[i] = 'A' + (s1[i] - 'a');
}