| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:大小写转换通不过
只看楼主 加入收藏
ouhuayu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-19
结帖率:0
收藏
已结贴  问题点数:5 回复次数:6 
大小写转换通不过
写一个小写转换成大写的程序,编译不过去,大神帮菜鸟看看,谢谢呵呵。
#include<stdio.h>
#include<string.h>

void main()
{
    char array[64];
    gets(array);
    array = TestTransform(array);
    puts(array);

}

char TestTransform(char * pcarray)
{
    char * propcarray;
    propcarray = pcarray;
    while(*pcarray = '0')
    {
        if(*pcarray >= 'a'||*pcarray <= 'z')
        {
            *pcarray = *pcarray - 32;
            pcarray++;
        }
        else
        {
            *pcarray = *pcarray;
            pcarray++;
        }   
    }

    return(propcarray);
}
搜索更多相关主题的帖子: void include 
2012-11-19 16:35
ouhuayu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-19
收藏
得分:0 
我忘了声明函数不过问题不是出在这
2012-11-19 16:36
ouhuayu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-19
收藏
得分:0 
类型出现问题吧
TextTransform.c: In function ‘main’:
TextTransform.c:12:8: error: incompatible types when assigning to type ‘char[64]’ from type ‘char’
TextTransform.c: In function ‘TestTransform’:
TextTransform.c:35:2: warning: return makes integer from pointer without a cast [enabled by default]
怎么改
2012-11-19 16:39
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:2 
函数返回是char 但是实现的时候返回的是char *
然后指针运用还有问题,先自己看看吧
2012-11-19 17:09
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
有那么复杂吗
看看这个可以吗
程序代码:
#include<stdio.h>
#include<string.h>

int main(int argc,char *argv[])
{
    char array[]="abcdEIFNSGvljklskdjflf";
    int len=strlen(array);
    for(int i=0;i<len;i++)
    {
        if(array[i]>90) array[i]-=32;
        printf("%c",array[i]);
    }
    printf("\n");
    return 0;
}

 

DO IT YOURSELF !
2012-11-19 17:25
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:2 
回复 楼主 ouhuayu
#include<stdio.h>
#include<string.h>
void TestTransform(char * pcarray);//实现函数在main函数下面,需要先声明,因为你传的是数组的首地址,直接操作了,不必使用返回值了
void main()
{
    char array[64];
    gets(array);
    TestTransform(array);
    puts(array);
   
}

void TestTransform(char * pcarray)
{
    char * propcarray;
    propcarray = pcarray;//这个也可以不要用了
    while(*pcarray != '\0')//用这个,原来的=是赋值,是错误的,应该是不等于结束符就一直循环
    {
        if(*pcarray >= 'a'&&*pcarray <= 'z')//这里使用&&与运算,||或运算会出错,
        {
            *pcarray = *pcarray - 32;
        }
            pcarray++; //也不需要else了,if不管满不满足都要取下一个字符
    }
}
2012-11-19 18:33
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
回复 楼主 ouhuayu
#include<stdio.h>
#include<string.h>
void TestTransform(char * pcarray);//实现函数在main函数下面,需要先声明,因为你传的是数组的首地址,直接操作了,不必使用返回值了
void main()
{
    char array[64];
    gets(array);
    TestTransform(array);
    puts(array);
   
}

void TestTransform(char * pcarray)
{
    char * propcarray;
    propcarray = pcarray;//这个也可以不要用了
    while(*pcarray != '\0')//用这个,原来的=是赋值,是错误的,应该是不等于结束符就一直循环
    {
        if(*pcarray >= 'a'&&*pcarray <= 'z')//这里使用&&与运算,||或运算会出错,
        {
            *pcarray = *pcarray - 32;
        }
            pcarray++; //也不需要else了,if不管满不满足都要取下一个字符
    }
}
2012-11-19 18:33
快速回复:大小写转换通不过
数据加载中...
 
   



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

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