新人求助,C语言基础编程问题,求代码
实例 15 字符串替换【实例说明】
编程实现将字符串"today is Monday"替换变成"today is Friday"。
【技术要点】
本实例的算法思想如下:首先输人字符串1,再输入要替换的内容和替换的位置(字符串1中的位置),这时只需从替换位置开始将要替换的内容逐个拷到字符串1中,直到遇到字符串1的结束符或遇到替换字符串的结束符便结束替换。

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
extern int my_scanf(char *dest,char *str,int *n);
extern int my_replace(char *dest,char *str,int n,int z);
int main() {
char dest[21] = { 0 };
char str[20] = { 0 };
int n;
int z = sizeof(dest);
//字符串输入
int er;
er = my_scanf(dest,str,&n);
if (er != 0)
{
printf("my_scanf err %d",er);
}
//字符串替换
er = my_replace(dest,str,n,z);
if (er != 0)
{
printf("my_replace err %d",er);
}
printf("%s",dest);
system("pause");
return 0;
}
//字符串替换
int my_replace(char *dest, char *str, int n,int z) {
if (dest == NULL || str == NULL || n == (int)NULL) {
return -1;
}
char *dest1 = dest;
for (int i = 0; n < z; n++,i++)
{
*(dest1 + n) = *(str + i);
}
return 0;
}
//my name is aaaaaaaaa
//字符串录入
int my_scanf(char *dest, char *str, int *n) {
if (dest == NULL || str == NULL || n == NULL) {
return -1;
}
printf("输入含20以下字符\n");
while (1)
{
gets(dest);
if (strlen(dest) != (int)NULL && strlen(dest) <= 20)
{
break;
}
printf("字符长度过长或空重新输入\n");
}
printf("输入起始点\n");
while (1)
{
scanf("%d", n);
if (*n <= 20 && *n >= 0)
{
break;
}
printf("超出字符串长度重新输入\n ");
}
printf("输入小于总字符串长度20减去起始位置字符串\n");
//清空scanf获取的回车
rewind(stdin);
while (1)
{
gets(str);
if ((unsigned int)(20 - *n) >= (unsigned int)strlen(str) && strlen(str) != (int)NULL)
{
break;
}
printf("字符串长度不符重新输入");
}
return 0;
}
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1010];
int i,j,n;
while(gets(a))
{
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]=='y'&&a[i+1]=='o'&&a[i+2]=='u')
{
printf("we");
i+=2;
}
else
{
printf("%c",a[i]);
}
}
printf("\n");
}
return 0;
}