字符串操作函数的实现—-字符串拼接
1 #include <stdio.h> 2 3 // 求字符串长度 4 int getlength(char *str) { 5 6 int len; 7 for (len = 0; str[len]!= ' '; len++); 8 9 return len; 10 } 11 12 13 // 字符串拼接函数实现, 将str2拼接到str1后 14 char *mystrcat(char *str1, char *str2) { 15 int len = getlength(str1); // 字符串str1的长度 16 int i, j; 17 18 for (i = len, j = 0; str2[j] != ' '; i++, j++) { 19 str1[i] = str2[j]; 20 } 21 22 str1[i] = ' '; // 手动添加字符串结束标志 23 24 return str1; 25 } 26 27 int main() { 28 29 char s1[100]="abcd"; 30 char s2[40]="efgh"; 31 char *p = s1; 32 33 p = mystrcat(s1, s2); // 数组名是常量, 不可以做左值 34 35 printf("s1 = %sn", s1); 36 printf("s2 = %sn", s2); 37 printf("s1 + s2 = %sn", p); 38 39 return 0; 40 }
运行结果:
注意事项:
0° 主函数main中的测试字符串s1不能定义成char *s1 = “abcd”的形式, 这种定义方式只是声明一个char型的指针变量指向字符串 “abcd”, 而并没有开辟内存空间, 不能进行拼接.
1° 在mystrcat函数中拼接动作完成后需要手动添加一个字符串结束标志’