zxc837960204 发表于 2019-10-23 01:06:08

c语言求解,新手,想了一个晚上都不会

输入一段字母(如:A,B,C,D,E,F)输出其小写的形式(如:a,b,c,d,e,f){:10_266:}

谢谢谢谢!

bin554385863 发表于 2019-10-23 01:21:19

去看看ASCII表你就知道怎么写了,
或者使用库函数

小甲鱼 发表于 2019-10-23 02:13:47

'a' == 'A' + 32

zxc837960204 发表于 2019-10-23 09:04:09

小甲鱼 发表于 2019-10-23 02:13
'a' == 'A' + 32

可是让输的是一段字母,也是这样算吗?

zxc837960204 发表于 2019-10-23 09:04:47

bin554385863 发表于 2019-10-23 01:21
去看看ASCII表你就知道怎么写了,
或者使用库函数

我会算单个的,一串的就不会了{:10_266:}

bin554385863 发表于 2019-10-23 09:12:27

………一串还不是一个个穿起来的???

bin554385863 发表于 2019-10-23 09:14:44

zxc837960204 发表于 2019-10-23 09:04
我会算单个的,一串的就不会了

或者你搜一下库函数,字符串有自带的大小写转换函数

zxc837960204 发表于 2019-10-23 09:21:24

bin554385863 发表于 2019-10-23 09:14
或者你搜一下库函数,字符串有自带的大小写转换函数

我定义的时候可以用char吗 。输入的时候可以用getchar吗

zxc837960204 发表于 2019-10-23 09:31:19

bin554385863 发表于 2019-10-23 09:14
或者你搜一下库函数,字符串有自带的大小写转换函数

#include<stdio.h>
int main()
{
        char ch;
        printf("input a set of numbers:\n");
        scanf("%c",&ch);
        for(ch='A';ch>='A'&&ch<='F';ch++;)
        {
                c=c+32;
                printf("%c",ch);
        }
        return 0;
}

zxc837960204 发表于 2019-10-23 09:32:41

bin554385863 发表于 2019-10-23 09:14
或者你搜一下库函数,字符串有自带的大小写转换函数

能说一下我写的哪有问题吗 是定义不对 还是输入不对?谢谢谢谢,求求了。真的不会。。

yuweb 发表于 2019-10-23 09:46:42

本帖最后由 yuweb 于 2019-10-23 09:53 编辑

第7行ch++后面多了个分号,而且ch应该是ch>='A'&&ch<='Z',应该也不是这边循环吧,改成if
第9行c未定义,你应该是想写ch吧?
你的修改
#include<stdio.h>
int main()
{
      char ch;
      printf("input a set of numbers:\n");
      scanf("%c",&ch);
      if(ch>='A'&&ch<='Z')
      {
                ch=ch+32;
                printf("%c\n",ch);
      }
      return 0;
}

ctype.h里有一个tolower函数,
函数原型
int tolower(int c)
{
    if ((c >= 'A') && (c <= 'Z'))
      return c + ('a' - 'A');
    return c;
}
利用一下,用循环获取持续输入,结束直接关闭或者ctrl+c
#include <stdio.h>
#include <ctype.h>
int main()
{
      char ch;
        printf("input a set of numbers:\n");
        while (true)            //死循环,能够持续输入字符
        {
                scanf("%c", &ch);
                printf("%c",tolower(ch));
        }
      return 0;
}

zxc837960204 发表于 2019-10-23 09:56:18

yuweb 发表于 2019-10-23 09:46
第7行ch++后面多了个分号,而且ch应该是ch>='A'&&ch

是的,刚开始学,好多细节都弄不好。。
谢谢谢谢,万分感谢

zxc837960204 发表于 2019-10-23 19:58:25

#include<stdio.h>
int main()
{
        char c={"A,B,C,D,E,F"};
        int i;
        for(i=0;i<11;i++)
        {
          if (c>='A'&&c<='F')c=c+32;
          printf("%c",c);
    }
    printf("\n");
        return 0;
}

zxc837960204 发表于 2019-10-23 19:59:42

#include<stdio.h>
#include<string.h>
int main()
{
        char c[]={"A,B,C,D,E,F"};
    printf("%s",strlwr(c));
        return 0;
}

zxc837960204 发表于 2019-10-23 20:00:35

#include<stdio.h>
#include<string.h>
int main()
{
        char c;
        printf("input a set of numbers:\n");
        gets(c);
    printf("%s",strlwr(c));
        return 0;
}
页: [1]
查看完整版本: c语言求解,新手,想了一个晚上都不会