0

پیاده سازی توابع strlen, strcpy, strcmp, strcat, strrev در C++

 
mehdigerdali
mehdigerdali
کاربر طلایی1
تاریخ عضویت : خرداد 1390 
تعداد پست ها : 5587
محل سکونت : خوزستان

پیاده سازی توابع strlen, strcpy, strcmp, strcat, strrev در C++
دوشنبه 20 تیر 1390  12:39 PM




//SepehrM.com

#include<stdio.h>
#include<conio.h>
#include<string.h>
int STRLEN(char*);
int STRCPY(char*,char*);
int STRCMP(char*,char*);
int STRCAT(char*,char*,char*);
int STRREV(char*);
void main()
{
    int c;
    char str[20],str1[10],str2[10],str3[20];
    clrscr();
    re:
    printf("
Enter choice=>");
    printf("
        1:string len.
        2:string copy
        3:string
cmp.
        4:string cat.
        5:string rev.");
    printf("
        6:for exit=>");
    scanf("%d",&c);switch(c)
    {
        case 1:
            printf("Enter the string=>");
            scanf("%s",&str1);
            printf("string length=>%d
",STRLEN(str1));
            break;
        case 2:
            printf("
Enter the string=>");
            scanf("%s",str1);
            STRCPY(str2,str1);
            printf("copied string=>");
            puts(str2);
            break;
        case 3:
            printf("Enter two string=>");
            scanf("%s",&str1);
            scanf("%s",&str2);
            if(STRCMP(str2,str1))
                printf("string is equal");
            else
                printf("String is not equal");
            break;
        case 4:
            printf("Enter two string=>");
            scanf("%s",str1);
            scanf("%s",str2);
            STRCAT(str3,str2,str1);
            puts(str3);
            break;
        case 5:
            printf("Enter the string=>");
            scanf("%s",str1);
            STRREV(str1);
            printf("Reverse stringis=>");
            puts(str1);
            break;
        default:
            goto end;
    }
    goto re;
end:
getch();
}
int STRLEN(char *s)
{
    int i=0;
    while(*s!=NULL)
    {
        i++;
        s++;
    }
    return i;
}
int STRCPY(char *s2,char *s1)
{
    while(*s1!=NULL)
    {
        *s2=*s1;
        s2++;
        s1++;
    }
    *s2=NULL;
    return 1;
}
int STRCMP(char *s2,char *s1)
{
    int i=0,len1,len2;
    len1=strlen(s1);
    len2=strlen(s2);
    if(len1==len2)
    {
        while(*s2==*s1 && *s2 != NULL && *s1!=NULL)
        {
            i++;
            s1++;
            s2++;
        }
        if(i==len1)
            return 1;
        else
            return 0;
    }
    else
    {
        return 0;
    }
}
int STRREV(char *s)
{
    int len;
    char *s1;
    char *ptr;
    len=strlen(s);
    s1=(char *)malloc(sizeof(char));
    strcpy(s1,s);
    ptr=s1+len-1;
    while(*s!=NULL)
    {
        *s=*ptr;
        ptr--;
        s++;
        s1++;
    }
    *s=NULL;
    return 1;
}
int STRCAT(char *s3,char *s2,char *s1)
{
    while(*s1!=NULL)
    {
        *s3=*s1;
        s3++;
        s1++;
    }
    s3++;
    while(*s2!=NULL)
    {
        *s3=*s2;
        s3++;
        s2++;
    }
    *s3=NULL;
    return 1;
}

***به بهشت نمی روم اگر مــــــادرم آنجا نباشد***

آنگاه که تنها شدی و در جست جوی یک تکیه گاه مطمئن هستی ، بر من توکل نما . نمل/79

 

تشکرات از این پست
دسترسی سریع به انجمن ها