1、在字符数组中指定开始位置插入字符串:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char a[32] = {0};
char b[32] = {0};
int i, j, num;
printf("please input...\n");
scanf("%s%d%s", a, &num, b);
for (i = 0; i < strlen(a) - num + 1; i++)
{
*(a + strlen(a) + strlen(b) - 1 - i) = *(a + strlen(a) - 1 - i);
}
for (j = 0; j < strlen(b); j++)
{
*(a + num - 1 + j) = *(b + j);
}
printf("%s\n", a);
return 0;
}
2、几个字符串求出最小串:
#include <stdio.h>
#include <string.h>
void min(char *x,char *y);
int main()
{
char a[32] = {0};
char b[32] = {0};
char c[32] = {0};
printf("please input...\n");
scanf("%s%s%s", a, b, c);
min(a, b);
min(a, c);
printf("%s\n", a);
return 0;
}
void min(char *x,char *y)
{
if(strcmp(x, y) > 0)
{
strcpy(x, y);
}
}
3、题目: 请编写一个C函数,该函数将一个字符串逆序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p = (char *)malloc(sizeof(char) * 32);
int i;
printf("please input...\n");
scanf("%s", p);
int length = strlen(p);
for (i = 0; i <= length / 2; i++)
{
char a;
a = *(p + i);
*(p + i) = *(p + length - 1 - i);
*(p + length - 1 - i) = a;
}
printf("%s\n", p);
return 0;
}
4、题目: 输入一个字符串,计算字符串中子串出现的次数:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char a[32] = {0};
char b[32] = {0};
char *p, *q;
p = a;
q = b;
int i, j, count = 0;
printf("please input....\n");
scanf("%s%s", p, q);
if (strlen(p) < strlen(q))
{
printf("ERROR!\n");
exit(1);
}
for (i= 0; i < strlen(p) - strlen(q) + 1; i++)
{
if (*(p + i) == *(q))
{
for (j = 0; j < strlen(q) - 1; j++)
{
if (*(p + i + j) != *(q + j))
{
break;
}
}
if (j == strlen(q) - 1)
{
count++;
}
i = i + strlen(q) ;
}
}
printf("%d\n", count);
return 0;
}