标题:字符串倒置问题
只看楼主
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
 问题点数:0 回复次数:5 
字符串倒置问题
各位前辈,我初学编程,弄了个程序,把字符串倒过来,但是结果不对,请给予指点。
#include <stdio.h>
#define N 100
convert(char s[N])
{
    int i,j,temp;
    for(i=0; i<strlen(str)/2; i++)
    {
        for(j=strlen(str)-1; j>strlen(str)/2; j--)
        {
            temp=str[i];
            str[i]=str[j];
            str[j]=temp;
        }
    }
    printf("Now string:\n%s",s);

       
        
       
}
void main()
{
    int i;
    char str[N];
    printf("Enter the string:\n");
    gets(str);
    printf("Origin str:\n%s",str);
    convert(str);
        
}
搜索更多相关主题的帖子: 字符 倒置 
2008-07-17 21:26
爱喝牛奶的猫咪
Rank: 1
来 自:QQ群46520219
等 级:禁止访问
帖 子:513
专家分:0
注 册:2008-6-16
得分:0 
用二重循环干嘛???


[color=white]<>
2008-07-17 21:41
qxykzx
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-17
得分:0 
问题解决
有三个问题.1.首先temp类型应该是字符char类型,而不是整数int类型.
      2.函数传参数使用不对,既然str已经传进函数,并且赋值给了s,函数中就只有s,而不存在str.
      3.算法不对,如楼上所说用一重循环即可.下面是我改正的程序(测试过).^_^
不知道讲清楚没有,我也是新学习的,大家共同努力
#include <stdio.h>
#define N 100
convert(char s[N])
{
    int i,j;
    char temp;
    for(i=0; i<strlen(s)/2; i++)
    {   j=strlen(s)-1;
        temp=s[i];
        s[i]=s[j-i];
        s[j-i]=temp;

    }
    printf("Now string:\n%s",s);

}
void main()
{
    int i;
    char str[N];
    printf("Enter the string:\n");
    gets(str);
    printf("Origin str:\n%s",str);
    convert(str);

}
2008-07-17 22:15
病书生
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-11-8
得分:0 
convert(char s[N])
{
    int i,j,temp;
    for(i=0; i<strlen(str)/2; i++)
    {
        for(j=strlen(str)-1; j>strlen(str)/2; j--)
        {
            temp=str[i];
            str[i]=str[j];
            str[j]=temp;
        }
    }
    printf("Now string:\n%s",s);
1.这里面的 str 应该用s
2.要用strlen 应该加上#include<string.h>
3.for(i=0; i<strlen(str)/2; i++)
    {
        for(j=strlen(str)-1; j>strlen(str)/2; j--)
这两个循环用1个就行了啊
如for(i=0,j=strlen(s)-1;i<strlen)/2;i++,j--)就可以了

4.convert(char s[N])函数是否有返回值,如果没有 应该为
 void convert(char s[])
5.int i,j,temp
temp 应该为char 类型,因为数组是char类型的
5.main 函数里设置的int i 没使用
2008-07-17 22:16
病书生
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-11-8
得分:0 
#include <stdio.h>
#include <string.h>
#define N 100
void convert(char s[])
{
    int i,j;
    char temp;
    for(i=0,j=strlen(s)-1; i<strlen(s)/2; i++,j--)
    {
            temp=s[i];
            s[i]=s[j];
            s[j]=temp;
    }      
    printf("\nNow string:%s\n",s);   
      
}
void main()
{
    char str[N];
    printf("Enter the string:");
    gets(str);
    printf("Origin str:%s",str);
    convert(str);

}


[[it] 本帖最后由 病书生 于 2008-7-17 22:29 编辑 [/it]]
2008-07-17 22:17
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
得分:0 
感谢
在此谢过各位热心人的帮助!
2008-07-18 18:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-224251-1-1.html




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

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