重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网络空间、营销软件、网站建设、新城网站维护、网站推广。
#include stdlib.h
#include string.h
void replace_string(char *c, const char *p, const char *r);
int main()
{
char c[100] = "you are the best,you should word hard,and you will be success!";
char p[] = "you";
char r[] = "LGDDD";
replace_string(c, p, r);
printf("替换后:");
puts(c);
return 0;
}
void replace_string(char *c, const char *p, const char *r)
{
int i = 0, j = 0;
while (c[j] = c[i])
{
int len = strlen(c);
int len1 = strlen(p);
int len2 = strlen(r);
int m = i;
int n = 0;
for (; c[m] == p[n] p[n]; m++, n++);
if (p[n] != 0)
{
i++;
j++;
}
else
// i = i + strlen(p);
if (len2 len1)
{
int m1,n1;
for (m1 = len; m1 = i + strlen(p); m1--)
c[m1 + len2-len1] = c[m1];
// puts(c);
for (n1 = i, m1 = 0; m1 len2; m1++, n1++)
c[n1] = r[m1];
}
else if (len2 = len1)
{
int m1, n1;
for (m1 = i + len1 - len2, n1 = 0; n1 len2; n1++, m1++)
c[m1] = r[n1];
i = i + len1 - len2;
}
}
}
复制相关函数:memcpy、memmove、strcpy、strncpy
字符串连接函数:strcat、strncat
字符串比较函数:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函数:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相关函数:memset、strerror、strlen
#include stdio.h
#include stdlib.h
char *substr(const char *s,int n1,int n2)/*从s中提取下标为n1~n2的字符组成一个新字符串,然后返回这个新串的首地址*/
{
char *sp=malloc(sizeof(char)*(n2-n1+2));
int i,j=0;
for (i=n1; i=n2; i++) {
sp[j++]=s[i];
}
sp[j]=0;
return sp;
}
int main(void)
{
char s[80],*sub;
scanf("%s",s);/*输入原字符串s*/
sub=substr(s,0,5);/*提取s[0]~s[5]元素组成新子串,并保存到sub中*/
printf("substr:%s\n",sub);/*输出sub*/
free(sub);/*释放sub所占用的空间*/
return 0;
}
在纯C中好像没有,但是C++中很容易,你可以去查一下,网上有很多纯C实现的子串求法
string的substr函数是C++的,是STL库中的,而非纯C的实现,纯C的标准库中没有直接获得子串的方法,自己写很容易