C语言 实现子串替换函数:用子串r替换源串c中的子串p

Python017

C语言 实现子串替换函数:用子串r替换源串c中的子串p,第1张

#include<stdio.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

}

}

}

好好看看字符串指针。 p在for中赋值。 *s=*(p-s1 s2)字符串指针的加减,表示字符地址的加减。p-s1表示p指向字符与s1的距离(),再加上s2,表示s2中相应字符的地址,再付给s 手机打的,不太清楚。 多看看,字符串指针,就好懂多了

编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成低级语言(机器语言、汇编语言)和高级语言(C语言、SQL等)两大类。

1、低级语言

包括机器语言和汇编语言

(一) 机器语言是最原始的计算机语言。由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令。

(二)汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。

2、高级语言

现在最常用和通用的是高级语言。和机器语言和汇编语言相比,高级语言不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

常见高级语言有:BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、SQL数据库语言、VC++、DELPHI等等......