想学好编程还是要自己动手,给你一个思路吧首先,字符串可以看成是一个char型的数组+一个结束符'\0’,于是就好办了,不用strlen,因为不需要知道长度,我们只要找结束符就好了,输入两个字符串,第一个按下标往后找结束符,找到后,从这里开始将第二个字符串内容copy过来,不知道长度不要紧,也按下标一字节一字节copy,遇到'\0'停止,新的字符串结尾也要加结束符,这样,就是自己实现的简单的strcat函数,这里不仅能得到连接后的字符串,还能知道传入的两个字符串的长度。
#include<iostream.h>void* Strcat(char s[],char t[]);int main(void){ char s[100],t[100]; cout<<"请输入第一个字符串:";cin>>s; cout<<"请输入第二个字符串:";cin>>t; Strcat(s,t); cout<<"连接后字符串为:"<<s<<endl; return 0;}void* Strcat(char s[],char t[]){ int i,k; for(i=0;s[i]!='\0';i++); for(k=0;t[k]!='\0';i++,k++) s[i]=t[k]; s[i] = '\0'; cout<<"第一个字符串长度为:"<<i-k<<endl; cout<<"第二个字符串长度为"<<k<<endl;cout<<"连接后字符串长度为:"<<i<<endl; return s;}// 把两个字符串长度、连接后字符串长度都给统计出来了,你看下还有什么问题,有问题的话,可以继续追问~~~
#include<stdio.h>void main(){ char s1[255],s2[255]; int i,k=0; char *p=s1,*q=s2; gets(s1); gets(s2); while(*p)p++; while(*p++=*q++); *p='\0'; p=s1; while(*p++)k++; printf("s1+s2=%s len(s1+s2)=%d\n",s1,k);}运行情况如下:abcabcds1+s2=abcabcd len(s1+s2)=7请按任意键继续. . .