69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
char s[256];
char *p;
int r,n,i;
int main() {
while (1) {
printf("请输入一行文字(空行结束),\"%%20\"将替换为\" \",\"你懂得\"将替换为\"XXXXXX\":\n");
fgets(s,256,stdin);
if ('\n'==s[0]) break;
p=s;
while (1) {
p=strstr(p,"%20");
if (p) {
memmove(p+1,p+3,strlen(p)-3+1);
p[0]=' ';
} else break;
}
p=s;
while (1) {
p=strstr(p,"你懂得");
if (p) {
memmove(p+6,p+6,strlen(p)-6+1);
for (i=0;i<6;i++) p[i]='X';
} else break;
}
printf("%s",s);
}
return 0;
}
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//abcdefg%20helloworld%20something.pdf
//abcdefg helloworld something.pdf
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事
//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
char *str1="AABBCCDDBB",*str2="BB";
char s[100]={0},str3[100]="AABBCCDDBB";
int i=0,n=0;
int h,m,j,k,itemp;
m=strlen(str1);
h=strlen(str2);
while(str1!='\0')
{
if((*str1)!=(*str2))
{
str1++;
i++;
}
else
{
str1++;
i++;
str2++;
h--;
}
if(h==0)
{
str2="BB";
h=strlen(str2);
itemp=i;
i=0;
for(j=0;j<itemp-h;j++)
{
s[n++]=str3[j++];
}
for(k=0;k<m-itemp;k++)
str3[k++]=*str1++;
}
else
{
for(j=0;j<m-itemp;j++)
s[n++]=str3[j++];
}
}
s[n]='\0';
puts(s);
}
不知道哪错了 好久没碰C了 指针不会用了
#include<stdio.h>
#include<string.h>
main()
{
char *str1="AABBCCDDBB",*str2="BB",*str3;
char s[100];
int i=0,n=0,itemp=0;
int h,m,j,k;
m=strlen(str1);
h=strlen(str2);
str3=str1;
while(*str1!='\0')
{
if(*str1!=*str2)
{
str1++;
i++;
}
else
{
str1++;
i++;
str2++;
h--;
}
if(h==0)
{
str2="BB";
h=strlen(str2);
itemp=i;
i=0;
for(j=0;j<itemp;j++)
{
if(j<itemp-h)
s[n++]=*str3;
str3++;
}
}
}
if(h!=0)
{
for(j=0;j<m-itemp;j++)
s[n++]=*str3++;
s[n]='\0';
}
puts(s);
}
对了 yeah
#include <stdio.h>
#include <string>
char* find_str_pos(char* srcstr, char *substr)
{
if(srcstr == NULL || substr == NULL)
return (char *) NULL;
if(!*srcstr || !*substr)
return (char *) NULL;
char *read_ptr = srcstr;
char *rm_ptr = substr;
while(*srcstr)
{
read_ptr = srcstr;
rm_ptr = substr;
do
{
if (*rm_ptr == '\0')
return srcstr;
} while (*read_ptr++ == *rm_ptr++);
srcstr++;
}
return (char *) NULL;
}
int main()
{
char readbuf[100] = "AABBCCDDEE";
char rmbuf[10] = "CC";
char newbuf[100] = {0};
int readlen = strlen(readbuf);
int rmlen = strlen(rmbuf);
char *pos = find_str_pos(readbuf,rmbuf); //指向删除部分开头
int poslen = strlen(pos);
if(!pos)
return 0; //字符串不存在相同项
int offset = 0;
offset = readlen - poslen;
memcpy(newbuf,readbuf,offset);
memcpy(newbuf+offset,pos+rmlen,poslen-rmlen);
return 0;
}