您的位置:首页 > 其它

字符串基本处理函数(strlen,strcpy,strcat)

2013-12-01 16:49 281 查看
/article/9577566.html

Strlen()用来计算字符串的长度,其中并不包含结束字符。此函数会计算字符串的字节长,不把结束字符算在内。

Strcpy()是将一个字符串复制到另一个字符串。若要将字符串s2复制到字符串s1中,则s1必须要有足够的空间来容纳s2,最后此函数返回s1的起始地址。

Strcat()是将两个字符串合并成一个字符串。若要将字符串s2连接到字符串s1的后面,则必须将s1的结束字符去掉,且字符串s1要有足够的空间来容纳字符串s2,最后此函数返回s1的起始地址。

#include "stdio.h"

int Strlen(char *s)//字符串的长度计算

{

int i=0;

while (s[++i]);//while(s[i]){i++}也可

return i;

}

char *Strcpy(char *s1,char *s2)//字符串的复制

{

int i=0,j=0;

while (s1[i++]=s2[j++]);

return s1;

}

char *Strcat(char *s1,char* s2)//字符串的结合

{

int i=0,j=0;

while(s1[++i]);//寻找s1的结束位置,while(s1[i]){i++}也可

while(s2[j])

{

s1[i+j]=s2[j];

j++;

}

s1[i+j]='/0';//设置合并后的字符串结束

return s1;

}

void main()

{

char string[50];

char copystring[50];

char string1[100];

char string2[50];

int length;

printf("/n Please input string:");

gets(string);

length=Strlen(string);

printf("/n The input string length is %d ",length);

printf("/n/n Please input string:");

gets(string);

Strcpy(copystring,string);

printf("/n string: %s ",string);

printf("/n copystring: %s ",copystring);

printf("/n/n Please input string1:");

gets(string1);

printf("/n Please input string2:");

gets(string2);

printf("/n string1: %s ",string1);

printf("/n string2: %s ",string2);

Strcat(string1,string2);

printf("/n The merge string is: %s /n",string1);

}

也可以for循环改写以上字符串处理函数:

int Strlen(char *s)//字符串的长度计算

{

int i;

for (i=0;s[i]!='/0';)

{

i++;

}

return i;

}

char *Strcpy(char *s1,char *s2))//字符串的复制

{

int i;

for (i=0;s2[i]!='/0';i++)

{

s1[i]=s2[i];

}

s1[i]='/0';

return s1;

}

char *Strcat(char *s1,char* s2))//字符串的结合

{

int i,j;

for(i=0;s1[i]!='/0';i++);

for (j=0;s2[j]!='/0';j++)

{

s1[i+j]=s2[j];

}

s1[i+j]='/0';

return s1;

}

char *Strcpy(char *s1,char *s2)//字符串复制函数,while循环只用一个变量

{

int i=0;

while (s1[i]=s2[i])

{

i++;

}

return s1;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: