10.3字符串与函数

/*
要包含头文件 :  #include<stdlib.h>
strlen(str),求字符串长度,不包括'\0'。
strcpy(str1,str2),str2复制到str1,str1必须发的下str2。
strcmp(str1,str2),str1大于str2,返回值大于0;str1等于str2,返回值等于0;str1小于str2,返回值小于0。

strcat(str1,str2),str2添加到str1中。str1必须有足够的大小
strncpy(str1,str2,n),str2至多前n个字符复制到str1中。
strncmp(str1,str2,n),最多比较n个字符。V
strncat(str1,str2,n),str2中至多前n个字符放到str1后面。
*/
//将字符串进行排序,利用数组进行排序,因为以行优先进行存储。
#include<stdio.h>
#include<stdlib.h>
#define MAX_LEN 10
#define N 10
void SortSting(char str[][MAX_LEN],int n)
{
    int i,j;
    char temp[MAX_LEN];
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;i<n;j++)
        {
            if(strcmp(str[i],str[j])>0)
            {
                strcpy(temp,str[i]);
                strcpy(str[i],str[j]);
                strcpy(str[j],temp);
            }
        }
    }
}
int main()
{
    int i,n;
    char str[N][MAX_LEN];
    scanf("%d",&n);
    getchar();//读走输入缓冲区里的回车符,防止gets读入了。
    for(i=0;i<n;i++)
    {
        gets(str[i]);
    }
    SortString(str,n);
    for(i=0;i<n;i++)
    {
        puts(str[i]);
    }
    return 0;
}
/*
对于单个字符进行赋值可以用赋值运算符(=),但是对于赋值运算符进行赋值,只能用strcpy();
比较字符串不能用关系运算符,而应该用strcmp()。
*/
//将一个字符串赋值到另一个字符串中。
#include<stdio.h>
#define N 80
/*
void MyStrcpy(char a[],char b[])
{
    int i;
    for(i=0;a[i]!='\0';i++)
    {
        b[i]=a[i];
    }
    b[i]='\0';
}
*/
void MyStrcpy(char *pa,char *pb)
{
   while(*pa!='\0')
   {
       *pb++=*pa++;
   }
    *pb='\0';
}
int main()
{
    char a[N],b[N];
    gets(a);
    MyStrcpy(b,a);
    puts(b);
    return 0;
}
/*
返回指针值的函数与函数指针是截然不同的:
char *f();返回字符指针的函数;
char (*f)();函数指针指向的函数,返回值是字符型。
*/
//实现字符串连接功能
#include<stdio.h>
#define N 80
char *MyStrcat(char *first,char *second)
{
    char *temp;
    temp=first;//保存第一个字符串的首地址
    while(*first!='\0')
    {
        first++;
    }
    for(;*second!='\0';second++,first++)
    {
        *first==*second;
    }
    *first='\0';
    return temp;
}
int main()
{
    char a[2*N],b[N];
    gets(a);
    gets(b);
    printf("%s\n",MyStrcat(a,b));
    return 0;
}
发布了34 篇原创文章 · 获赞 2 · 访问量 462

猜你喜欢

转载自blog.csdn.net/qq_42148307/article/details/105003761