[英]replacing string with character in C
该代码需要用户输入(html标记)
ex:
<p> The content is text only inside tag </p>
gets(str);
任务是替换所有
用newline("\\n")
while((ptrch=strstr(str, " ")!=NULL)
{
memcpy(ptrch, "\n", 1);
}
printf("%s", str);
上面的代码仅将\\n
替换为第一个字符。
查询是如何替换整个
用\\n
或如何设置其余的nbsp;
到空字符常量之类的东西,而不用空指针('\\ 0')终止字符串。
你快到了。 现在,只需使用memmove
将内存向左移动到新行。
char str[255];
char* ptrchr;
char* end;
gets(str); // DANGEROUS! consider using fgets instead
end = (str + strlen(str));
while( (ptrch=strstr(str, " ")) != NULL)
{
memcpy(ptrch, "\n", 1);
memmove(ptrch + 1, ptrch + sizeof(" ") - 1, end-ptrchr);
}
printf("%s", str);
代替memcpy,您可以直接将字符设置为'\\ n': *ptchr = '\\n';
然后使用memmove将剩余的行向左移动-您用1替换了6个字符,因此必须将行移动5个字符。
码
char * ptrch = NULL;
int len =0;
while(NULL != (ptrch=strstr(str, " ")))
{
len = strlen(str) - strlen(ptrch);
memcpy(&str[len],"\n",1);
memmove(&str[len+1],&str[len+strlen(" ")],strlen(ptrch ));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.