常用字符函数实现:
1.puts函数: 字符串输出函数
#include <stdio.h>
#include <stdlib.h>
void myputs(char *pDate)
{
while(*pDate!=NULL){
putchar(*pDate++);
}
printf("\n");
}
int main()
{
char *p="yl shuai !";
myputs(p);
system("pause");
return 0;
}
2.gets函数: 字符串输入函数
void mygets(char *pa){
if(pa==NULL){
printf("内存非法\n");
exit(-1);
}else{
while(*pa=getchar()){
if(*pa=='\n'){
return;
}else{
pa++;
}
}
}
}
int main()
{
char pa[128]={'\0'};
myputs("请输入");
mygets(pa);
myputs(pa);
system("pause");
return 0;
}
3.strlen函数:字符串计算大小函数
int mystrlen(char *p){
int cnt=0;
while(*p!='\0'){
p++;
cnt++;
}
return cnt;
}
int main()
{
char pa[128]={'\0'};
char *p="yl shuai !";
printf("字符长度:%d\n",mystrlen(p));
system("pause");
return 0;
}
4.memset函数:字符串初始化函数
void mymemset(char *p,char c,int size)
{
while(size){
*p++=c;
size--;
}
}
int main()
{
char *p=NULL;
p=(char *)malloc(5);
mymemset(p,'a',5);
p[128]='\0';
myputs(p);
system("pause");
return 0;
}
5.strcat函数:字符串拼接函数
void mystrcat(char *p,char *a)
{
while(*p !='\0'){
*p++;
}
while(*a !='\0'){
*p++=*a++;
}
*p='\0';
}
int main()
{
char p[128]="yl shuai";
char *a="hen shuai";
mystrcat(p,a);
myputs(p);
system("pause");
return 0;
}
6.strcpy函数:字符串拷贝函数
char* mystrcpy(char *p,char *a)
{
if(p==NULL || a==NULL){
return NULL;
}
while(*a !='\0'){
*p++ =*a++;
}
*p='\0';
return p;
}
int main()
{
char p[128];
char *a="hen shuai";
mystrcpy(p,a);
myputs(p);
system("pause");
return 0;
}
7.strncpy函数:字符串最大拷贝函数
char* mystrncpy(char *p,char *a,int size)
{
if(p==NULL || a==NULL){
return NULL;
}
while(*a !='\0' && size--){
*p++ =*a++;
}
*p='\0';
return p;
}
int main()
{
char p[128];
char *a="hen shuai";
mystrncpy(p,a,3);
myputs(p);
system("pause");
return 0;
}
8.strchr函数:字符查找函数
char* mystrchr(char *dest,char c)
{
while(*dest++ !='\0'){
if(*dest==c){
return (char *)dest;
}
}
return NULL;
}
int main()
{
char dest[] ="yl hen shuai";
printf("date:%s\n",mystrchr(dest,'e'));
system("pause");
return 0;
}
9.strstr函数:字符串查找函数
char *mystrstr (char* des ,char *sour)
{
while (*des++!='\0')
{
char *d=(char *)des;
while(*des==*sour)
{
des++;
sour++;
}
if (*sour==0)
return d;
}
return NULL;
}
int main()
{
char str1[]="i am a student";
printf ("%s\n",mystrstr (str1,"am"));
system("pause");
return 0;
}
10.strcmp函数:字符串比较函数
int mystrcmp(char* src,char* dst)
{
int ret = 0;
while( !(ret = *(char *)src - *(char *)dst)&& *dst)
{
src ++;
dst ++;
}
if( ret < 0) ret = -1;
else if(ret > 0) ret = 1;
return ret;
}
int main()
{
char *str="1234";
char *str1="1234";
printf ("%d\n",mystrcmp(str,str1));
system("pause");
return 0;
}
11.strupr函数:小写转大写
void mystrupr(char *str)
{
while (*str != '\0')
{
if ((*str) >= 'a' && (*str) <= 'z')
{
*str = *str - 32;
}
str++;
}
}
int main()
{
char str[50] = "abcde";
mystrupr(str);
printf("%s\n", str);
system("pause");
return 0;
}
12 strlwr函数:大写转小写
void mystrlwr(char *str)
{
while (*str != '\0')
{
if ((*str) >= 'A' && (*str) <= 'Z')
{
*str = *str + 32;
}
str++;
}
}
int main()
{
char str[50] = "abcde";
mystrlwr(str);
printf("%s\n", str);
system("pause");
return 0;
}