标题:输入一串字符 将其中下标为单的字符里 小写字母改为大写 否则不变
只看楼主
K1396
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2018-5-25
结帖率:71.43%
已结贴  问题点数:5 回复次数:4 
输入一串字符 将其中下标为单的字符里 小写字母改为大写 否则不变
#include <stdio.h>
int fun(char *s,int n)
{
int a;
for(a=0;a<n;a++)
if(a%2!=0&&(s[a]<=112&&s[a]>=97))
s[a]–=32;
}

int main()
{
char s[100];
int a=0,n;
gets(s);
for(n=0;s[n]!='\0';n++)
a++;
fun(s,a);
printf("%s",s);
}
搜索更多相关主题的帖子: 输入 字符 小写 大写 int 
2018-08-01 16:30
K1396
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2018-5-25
得分:0 
为什么会显示定义重复..
2018-08-01 16:31
杨凡43
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2016-5-31
得分:3 
#include <stdio.h>
int fun(char *s, int n)
{   
    for (int a = 0; a < n; a++)
    {
        if (a % 2 != 0 && (s[a] <= 122 && s[a] >= 97))
            s[a] -= 32;
    }
    return 0;
};

int main()
{
    char s[100];
    int  n;
    gets(s);
    for (n = 0; s[n] != '\0'; n++);
    fun(s, n);
    printf("%s", s);
}


这个我修改了你的代码实现了你的要求,你的代码错了很多地方。
首先,重定义是因为你在main()函数定义了a,在fun()函数定义了a,所以重定义
然后,小写字母是97-122,fun()函数中你的for循环忘记加{}。
fun()函数中忘记添加返回值,你可以定义void fun()或者像我的代码一样加一个return 0;
2018-08-01 16:58
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
得分:2 
1.将 int fun(char *s,int n) 改为 void fun(char *s,int n)
2.s[a]–=32; 中 - 和 = 中间不能有空格
3.下标为单,或许有歧义数组下标从0开始,显示数数从1数,根据你自己的要求自行选择 a%2!=0  或 a%2==0

126邮箱联系方式:no1xijin@126. com
2018-08-01 16:59
K1396
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2018-5-25
得分:0 
回复 3楼 杨凡43
跑起来了 谢了
2018-08-02 08:44



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




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

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