首页 新闻 会员 周边 捐助

牵连到指针问题,指针还没学

0
悬赏园豆:10 [已解决问题] 解决于 2022-05-02 12:01

include <stdio.h>

include <string.h>

int main()
{
char ch[100];
printf("please input char:\n");
for (int i = 0; i < 100; i++)
{
scanf_s("%c", ch[i]);
}
for (int i = 0; i < 100; i++)
{
if ('a' <= ch[i] && ch[i] <= 'z')
{
ch[i] = ch[i] - 32;
}
else if ('A' <= ch[i] && ch[i] <= 'Z')
{
ch[i] = ch[i] + 32;
}
}
for (int i = 0; i < 100; i++)
{
printf("%c", ch[i]);
}
return 0;
}

问题补充:

必须用scanf printf 输入输出

上心&的主页 上心& | 初学一级 | 园豆:131
提问于:2022-05-02 11:50
< >
分享
最佳答案
0

下面的代码有毛病

scanf_s("%c", ch[i]);

改为

scanf_s("%c", &ch[i]);

学会函数参数传递和指针你就明白了。

收获园豆:10
寂静的羽夏 | 老鸟四级 |园豆:2095 | 2022-05-02 11:58

include <stdio.h>

include <string.h>

int main()
{
char ch[100];
printf("please input char:\n");
for (int i = 0; i < 100; i++)
{
scanf_s("%c", &ch[i],100);
if (ch[i] == '\0') break;

}
for (int i = 0; i < 100; i++)
{
	if ('a' <= ch[i] && ch[i] <= 'z')
	{
		ch[i] = ch[i] - 32;
	}
	else if ('A' <= ch[i] && ch[i] <= 'Z')
	{
		ch[i] = ch[i] + 32;
	}
}
for (int i = 0; i < 100; i++)
{
	printf("%c", ch[i]);
}
return 0;

}

if 为什仫执行不了呀 , 就是100个 输入20个像让输出 怎么实现呢?

上心& | 园豆:131 (初学一级) | 2022-05-02 12:19

\0 改为 \n 后面会出现乱码
但是勉强可以实现了

上心& | 园豆:131 (初学一级) | 2022-05-02 12:20

if (ch[i] == '\n') break;

上心& | 园豆:131 (初学一级) | 2022-05-02 12:21

@上心&: 给你一个最简单的实现,由于我用的是GCC,对应的函数自己改:

#include <stdio.h>
#include <string.h>
int main()
{
    char ch[100];
    printf("please input char:\n");
    scanf("%99s",ch);
    for (int i = 0; i < 100; i++)
    {
        if ('a' <= ch[i] && ch[i] <= 'z')
        {
            ch[i] = ch[i] - 32;
        }
        else if ('A' <= ch[i] && ch[i] <= 'Z')
        {
            ch[i] = ch[i] + 32;
        }
    }
    printf("%s",ch);
    return 0;
}
寂静的羽夏 | 园豆:2095 (老鸟四级) | 2022-05-02 12:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册