黄思莹 2021-05-30 11:32 采纳率: 0%
浏览 25

四道基础的c语言题目作业

1.统计字符长度(包括空格)

输入一行字符(小于50个字符)

如:Lou jilin(输出:9)

2.字符串复制(包括空格,小于50个字符)

如:Lou jilin(输出:Lou jilin)

3.字符串连接(输入三行字符串,小于50个字符)

如:lou

        ji

       lin

(输出:loujilin)

4.比较两个字符串大小(输入两行字符,输出大的那个,小于50个字符)

如:Lou jilin

        Lou xiaoxiao

(输出:Lou xiaoxiao)

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-05-30 14:15
    关注
    int getStrLen(char a[])
    {
    	int n = 0;
    	while(*(a++) != 0)
    		n++;
    	return n;
    }
    
    void strCpy(char dst[],char src[])
    {
    	while((*(dst++) = *(src++)) != 0)
    	{
    		//do nothing
    	}
    }
    
    void strLink(char dst[],char addStr[])
    {
    	int nLen = getStrLen(dst);
    	char *d = dst+nLen;
    	while((*(d++) = *(addStr++)) != 0)
    	{
    		//do nothing
    	}
    }
    
    char *strcmp(char str1[],char str2[])
    {
    	int i=0;
    	while(*(str1+i) != 0 && *(str2+i)!= 0)
    	{
    		if(*(str1+i) == 0)
    			return str2;
    		else if(*(str2+i) == 0)
    			return str1;
    		else if(*(str1+i) > *(str2+i))
    			return str1;
    		else if(*(str1+i) < *(str2+i))
    			return str2;
    	}
    	return str1; //此时两个串相同,任意返回一个都可
    }
    
    void main()
    {
    	char a[50] = {0};
    	char b[50] = {0};
    	char c[50] = {0};
    	char d[200] = {0};
    	printf("请输入第一串字符:");
    	scanf("%s",a);
    	int len1 = getStrLen(a); //第一题
    	printf("\n输入的串长度为:%d\n",len1);
    	//
    	strCpy(d,a);	//第二题
    	printf("\n复制串为:%s\n",d);
    	//
    	printf("请输入第二串字符:");
    	scanf("%s",b);
    	printf("\n请输入第三字符:");
    	scanf("%s",c);
    	strLink(d,b);
    	strLink(d,c);
    	printf("\n三串合并后为:%s\n",d);//第三题
    	//
    	char *p = strcmp(a,b);
    	printf("第一和第二串中较大的串是:%s",p);
    
    }
    评论

报告相同问题?