| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 666 人关注过本帖
标题:关于字符串
只看楼主 加入收藏
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
 问题点数:0 回复次数:10 
关于字符串
#include"stdio.h"
#include"string.h"
void convert(char s[],int N)
{
    char temp,*p,s1[100];
    int j,i;

    strcpy(s1,s);
    p=s1;

    for(i=0;i<N-1;i++)
    {
        for(j=i+1;j<N;j++)
        if(s[i]>s[j])
        {
            temp=s[i];s[i]=s[j];s[j]=temp;
        }
    }
    for(i=0;i<N;i++)
        printf("%s",s[i]);
        if(s[i]==*p)
            if(i==0)
                printf("%s",*p);
            else    printf("%s",*(p-1));
        else
            p++;

}
main()
{
    char a[20];
    int i;

    scanf("%s",a);
    i=strlen(a);     
   
    convert(a,i);
}
错误提示:内存不能读
题目要求:任意给定一个字符串s,将s中的各字母按照字典顺序排序形成新的字符串t,依次输出t中字符在原字符串s中的前一位
如exam  排序后为aemx ,最后输出xmae
搜索更多相关主题的帖子: 字符串 
2011-06-20 21:25
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include"stdio.h"
#include"string.h"
void convert(char s[],int N)
{
    char temp,*p,s1[100];
    int j,i;

    strcpy(s1,s);
    p=s1;

    for(i=0;i<N-1;i++)
    {
        for(j=0;j<N-i-1;j++)
        if(s[j]>s[j+1])
        {
            temp=s[j];s[j]=s[j+1];s[j+1]=temp;
        }
    }
    for(i=0;i<N;i++)
        printf("%c",s[i]);
        if(s[i]==*p)
            if(i==0)
                printf("%s",*p);
            else    printf("%s",*(p-1));
        else
            p++;

}
main()
{
    char a[20];
    int i;

    scanf("%s",a);
    i=strlen(a);    
   
    convert(a,i);
}

                                         
===========深入<----------------->浅出============
2011-06-20 22:06
pkwangxinjun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:170
注 册:2010-8-29
收藏
得分:0 
#include"stdio.h"
#include"string.h"
void convert(char s[],int N)
{
    char temp,*p,s1[100];
    int j,i;

    strcpy(s1,s);
    p=s1;
    for(i=0;i<N-1;i++)
    {
        for(j=i+1;j<N;j++)
        if(s[i]>s[j])
        {
            temp=s[i];s[i]=s[j];s[j]=temp;
        }
    }
    for(i=0;i<N;i++)
        printf("%c",s[i]);
        if(s[i]==*p)
            if(i==0)
                printf("%c",*p);
            else    printf("%c",*(p-1));
        else
            p++;

}
void main()
{
    char a[20];
    int i;

    scanf("%s",a);
    i=strlen(a);     
   
    convert(a,i);
}
2011-06-20 22:14
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
得分:0 
谢谢大家,
2011-06-20 22:23
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 4楼 gao_guai
程序代码:
char a[10],b[10];
gets(b);
int i,j,n;
strcpy(a,b);
n=strlen(b);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if(b[i]>b[j])
{b[i]=b[i]+b[j];
b[j]=b[i]-b[j];
b[i]=b[i]-b[j];}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(a[j]==b[i])
break;
printf("%c",a[(j-1+n)%n]);
}
不知道如果字符串中有重复的字符,楼主是怎样排序输出的。例如:abae
2011-06-21 07:09
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
得分:0 
回复 5楼 hjywyj
aabe,重复的就挨着输出
2011-06-29 19:27
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
收藏
得分:0 
楼主这个:任意给定一个字符串s,将s中的各字母按照字典顺序排序形成新的字符串t,我可以改出来,可是我想知道下面这句:依次输出t中字符在原字符串s中的前一位,你怎么弄出来的?
2011-06-29 20:46
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
得分:0 
回复 7楼 Heart→M鹏
#include"stdio.h"
#include"string.h"
void convert(char s[],int N)
{
    char temp,*p,s1[100];
    int j,i;

    strcpy(s1,s);
    p=s1;

    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(s[i]>s[j])
            {
                temp=s[i];s[i]=s[j];s[j]=temp;
            }  
        }
        printf("%c",s[i]);
   
    }    printf("\n");
    for(i=0;i<N;i++)
    {
        p=s1;
        while(*p!=s[i])
        {   
            
            p++;
        }
        if(i>0&&s[i]==s[i-1])
        {    p++;
            for(;*p!=s[i];p++);
            printf("%c",*(p-1));
        }

       else if(s1[0]==s[i]) printf("%c",*(p+N-1));
        else printf("%c",*(p-1));
    }
   
}

main()
{
    char a[20];
    int i;

    scanf("%s",a);
    i=strlen(a);     
   
    convert(a,i);
}


[ 本帖最后由 gao_guai 于 2011-6-30 16:45 编辑 ]
2011-06-30 10:49
flt198801
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-30
收藏
得分:0 
楼上的纠正:
else if(s1[0]==s[i]) printf("%c",*(p+N-1));
2011-06-30 16:13
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
得分:0 
回复 9楼 flt198801
谢谢,理解错了
2011-06-30 16:44
快速回复:关于字符串
数据加载中...
 
   



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

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