自定义字符串处理函数
来源:互联网 发布:微软designer鼠标 知乎 编辑:程序博客网 时间:2024/06/06 08:50
/*
编写4个函数分别实现
(1)两个字符数组内容拼接
(2)两个字符数组内容拷贝
(3)求字符数组内字符串长度
(4)两个数组内容的比较
类似于字符串处理函数strcat 、 strcpy 、 strlen、strcmp的作用 。
(方法1--用指针做形参)
*/
#include <iostream>
using namespace std;
char *str_cat(char * str1,char * str2); //两个字符数组内容拼接
char *str_cpy(char * str1,char * str2); //两个字符数组内容拷贝
int str_len(char * str1); //获取字符指针所指字符串长度
int str_cmp(char * str1,char * str2); //两个数组内容的比较
int main()
{
char str1[50];
char str2[25];
cout<<"请输入str1数组中要存放的字符串:";
gets(str1); //输入字符串
cout<<"请输入str2数组中要存放的字符串:";
gets(str2); //输入字符串
char *p1=str1; //字符指针p1指向字符数组str1的第一个元素
char *p2=str2; //字符指针p2指向字符数组str2的第一个元素
cout<<"\n数组str1中字符串内容为"<<p1<<endl;
cout<<"数组str1中字符串长度为"<<str_len(p1)<<endl<<endl; //输出字符串长度
cout<<"数组str2中字符串内容为"<<p2<<endl;
cout<<"数组str2中字符串长度为"<<str_len(p2)<<endl<<endl;//输出字符串长度
cout<<"数组str1和数组str2中内容比较结果:"<<endl;
int result=str_cmp(p1,p2); //字符串内容比较
if(result==0)
cout<<p1<<"相等"<<p2<<endl;
else if(result>0)
cout<<p1<<"大于"<<p2<<endl;
else
cout<<p1<<"小于"<<p2<<endl;
cout<<"\n将数组str2中的内容拷贝到数组str1中后"<<endl;
str_cpy(p1,p2); // str_cpy(str1,str2); 字符串拷贝
cout<<"数组str1中字符串内容为"<<p1<<endl;
cout<<"数组str2中字符串内容为"<<p2<<endl<<endl;
cout<<"\n将数组str2中的内容拼接到数组str1中后"<<endl;
str_cat(p1,p2); // str_cat(str1,str2); 字符串拼接
cout<<"数组str1中字符串内容为"<<p1<<endl;
cout<<"数组str2中字符串内容为"<<p2<<endl<<endl;
return 0;
}
//字符串拼接函数,将str2所指向的字符串拼接到str1所指字符串的后面,返回str1(地址)
char *str_cat(char * str1,char * str2)
{
char *p1=str1,*p2=str2; //因为要返回串1地址,需要记录串1地址
while(*p1!='\0') //地位串1的终止字符'\0'的位置
p1++;
while(*p2!='\0') //从串1的'\0'位置开始拷贝串2的内容
{
*p1=*p2;
p1++;
p2++;
}
*p1='\0'; //将串1最后加上'\0'作为串终止字符
return str1; //返回串1地址(str1)
}
char *str_cpy(char * str1,char * str2) //将指针str2所指字符串内容复制到str1所指的数组中,返回str1(地址)
{ char *p1=str1,*p2=str2;
while(*p2!='\0') //对应位置元素拷贝
{*p1=*p2;
p1++;
p2++;
}
*p1='\0'; //将串1最后加上'\0'作为串终止字符
return str1; //返回串1地址(str1)
}
int str_len(char * str1)//获取字符指针所指字符串长度,返回串的长度
{
int len=0;
while((*str1)!='\0') //统计串中第一个'\0'之前的字符个数
{ len++;
str1++;
}
return len;
}
int str_cmp(char * str1,char * str2)//两个数组内容的比较,返回两串中对应位置第一个不同字符之间的差值
{
int result;
while((*str1)==(*str2)&&(*str1)!='\0') //找到第一个对应位置不相同的字符
{
str1++;
str2++;
}
result=(*str1)-(*str2); //第一个对应位置不相同的字符的差值
return result;
}
- 自定义字符串处理函数
- 20170517_C风格字符串的处理函数的自定义
- 字符串函数自定义
- 自定义函数----回文字符串
- javascript 字符串自定义函数
- 自定义函数复制字符串
- 中文处理自定义函数
- 自定义错误处理函数
- 自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr
- 读书笔记:自定义函数实现字符串处理函数----strlen、strcmp、strcat、strcpy
- PHP字符串处理函数
- 字符串处理函数
- javascript字符串处理函数
- 字符串处理函数
- c++(字符串处理函数)
- javascript字符串处理函数
- sql字符串处理函数
- JavaScript 处理字符串函数
- 用形参为引用的形式实现实参的交换
- 正则基础之——非捕获组
- 项目3
- 算法竞赛入门经典第4章 【uvaoj习题(一)】
- Qt网络编程之一
- 自定义字符串处理函数
- Ubuntu12.10 系统下安装Nvidia官方显卡驱动
- Qt网络编程之二
- java:comp/env---环境命名上下文介绍
- HOG(方向梯度直方图)
- 字符串的复制
- 2013 Microsoft Intern Hiring Written Test : 20
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- python的库