| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:比较字符串大小
只看楼主 加入收藏
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
结帖率:78.57%
收藏
已结贴  问题点数:20 回复次数:8 
比较字符串大小
#include<stdio.h>
#include<string.h>
void main()
{
    void compare(char*q[],int j);
    int i,n;
    char (*p)[20],str[20][20];
    printf("请输入比较字符串的个数:\n");
    scanf("%d",&n);
    printf("请输入%d个字符串:\n",n);
    for(i=0;i<n;i++)
    {
       scanf("%s",str[i]);
       p=str[i];
       p++;
       printf("\n");  
    }
    p=str;
 compare(p,n);
 printf("比较后结果为:\n");
 for(i=0;i<n;i++)
 {
     printf("%s\n",p[i]);
 }
}


void compare(char*q[],int j)
{
    int m,k;
    char *t;
    for(m=0;m<j;m++)
    {   k=m;
        if(strcmp(q[m],q[k])>0) k=m;
        if(k!=m)
        {
            t=q[m]; q[m]=q[k]; q[k]=t;
        }

    }
}
哪里错了?
搜索更多相关主题的帖子: compare void include 字符串 
2012-11-13 22:24
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
收藏
得分:0 
#include<stdio.h>

void main()
{   char *fun(char *str1, char *str2);
    char s1[20],s2[20];
    printf("请输入字符串s1:\n");
    scanf("%s",&s1);
    printf("请输入字符串s2:\n");
    scanf("%s",&s2);
    fun(s1,s2);
    printf("s1、s2连接后的结果为:\n",s1);
    fun(s1,"string");
    printf("最后连接后的结果为:\n",s1);
}



char *fun(char * str1, char * str2)
{
    while(*str1)
        str1++;
    while(*str2)
        *str1++ = *str2++;
    str1 = '\0';
    return str1;
}
这个是连接字符串,代替strcat函数,这又是哪里不对了?
2012-11-13 22:53
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:2 

第2个问题,在你return  str1的时候本来就是指向的'\0',这个位置的。
过程:比如str1="123",str2="456",return之前str1已经指向'\0'了,输出为空
2012-11-14 11:02
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:0 
第一个问题:
    你比较的是某一个字符串?和第2个问题一样,指针已经移走了,比较函数中k位置是什么?
2012-11-14 11:18
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
收藏
得分:0 
回复 4楼 jk_love
那应该怎么改?我不会呀。
2012-11-14 12:35
fu2751653
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:38
专家分:100
注 册:2011-4-11
收藏
得分:18 
程序代码:
#include<stdio.h>

void main()
{   char *fun(char *str1, char *str2);
    char s1[20],s2[20];
    printf("请输入字符串s1:\n");
    scanf("%s",&s1);
    printf("请输入字符串s2:\n");
    scanf("%s",&s2);
    fun(s1,s2);
    printf("s1、s2连接后的结果为:%s\n",s1);
    fun(s1,"string");
    printf("最后连接后的结果为:%s\n",s1);
}



char* fun(char * str1, char * str2)
{
    char *p;
    p=str1;
    while(*p)
        p++;
    while(*str2)
        *p++ = *str2++;
    *p = '\0';
    return str1;
}
printf("s1、s2连接后的结果为:%s\n",s1);首先这里少了个%s;
然后就是fun 函数了
2012-11-14 13:23
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
收藏
得分:0 
谁告诉我第一个怎么改呀?
2012-11-14 21:50
fu2751653
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:38
专家分:100
注 册:2011-4-11
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
    void compare(char*q[],int j);
    int i,n;
   // char (*p)[20],str[20][20];
    char *str[20];
    printf("请输入比较字符串的个数:\n");
    scanf("%d",&n);
    printf("请输入%d个字符串:\n",n);
    for(i=0;i<n;i++)
    {
        str[i]=(char*)malloc(20*sizeof(char));
       scanf("%s",str[i]);
      // p=str[i];
      // p++;
      // printf("\n"); 
    }
   // p=str;
compare(str,n);
printf("比较后结果为:\n");
for(i=0;i<n;i++)
{
     printf("%s\n",str[i]);
}
}


void compare(char*q[],int j)
{
    int m,k;
    char *t;
    for(m=0;m<j-1;m++)
        for(k=0;k<j-1-m;k++)
    {  // k=m;
        if(strcmp(q[k],q[k+1])>0) //k=m;
       // if(k!=m)
        {
            t=q[k]; q[k]=q[k+1]; q[k+1]=t;
        }

    }
}
小改了一下,不知道符合要求不
2012-11-14 22:58
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
收藏
得分:0 
#include<stdio.h>
#include<conio.h>
char *strcat(char*p1,char*p2);
void main()
{

char s1[20];
char s2[20];
printf("请输入字符串s1:\n");
scanf("%s",s1);
printf("请输入字符串s2:\n");
scanf("%s",s2);
strcat(s2,s2);
printf("连接s1,s2之后的s1:%s\n",s1);
strcat(s1,"string");
printf("连接s1和string之后的s1:%s\n",s1);
}
char *strcat(char*p1,char*p2)
{
char *head=p1;
while(*p1!='\0')
p1++;
while(*p2!='\n')
{
*p1=*p2;
p1++;
p2++;
}
*p1='\0';
return head;
}
这个哪里错了?
2012-11-15 22:10
快速回复:比较字符串大小
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019601 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved