新人求助,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; }