字符串基本处理函数(strlen,strcpy,strcat)
2013-12-01 16:49
375 查看
/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;
}
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;
}
相关文章推荐
- 怎样写linux下的USB设备驱动程序
- java 银联,支付宝接口
- 向正在运行的Linux应用程序注入代码f
- hdu1166敌兵布阵
- Java JUC之Atomic系列12大类实例讲解和原理分解
- 布线问题-最小生成树
- 制作飞镖忍者(3) Cocos2d-x 3.0alpha0
- php 怎样实现异步处理接口
- printf、sprintf、vsprintf和wvsprintf的使用
- 【面试题十八】树的子结构
- JavaScript Source Map 详解
- strcat strcpy 深入研究(解决乱码等问题)
- 单例窗体
- 我开通blog了
- Ubuntu 12.04 安装QQ 2012
- CentOS如何部署TinyProxy
- 【面试题十七】合并两个排序的链表
- 【面试题十六】反转链表
- RH436之高可用性概述
- [EasyUI] EasyUI安装