C如何将用户输入句子改为全部大写字母

时间:2016-02-25 04:39:12

标签: c

大家好我需要用一个用户输入的句子并将其全部写成大写字母。但是,我还不能使用字符串,所以我认为我需要使用toupper代码才能使它工作。但是,当我运行下面的代码时,它就不会打印任何内容。我也在想,我可能不会使用scanf而是像getchhar一样,但我不确定。

    #include <stdio.h>
    #include <ctype.h>
      int main ()
      {
         char sen;

         printf("Enter sentence");
         scanf("%c", &sen);

         putchar (toupper(sen));

        printf("The caps are:%c\n", sen);
  return 0;
}

4 个答案:

答案 0 :(得分:1)

试试这个,(不涉及任何字符串!):

a=[9,8,7,6] b=[1,2,3,4]

这会将一个字符一次一个地转换为大写字母,然后一次一个地打印它们,直到输入/返回键被命中,这将使程序退出。

答案 1 :(得分:0)

#include<stdio.h>
main()
{
        char str[100]="",i;
        printf("Enter a sentence\n");
        scanf("%[^\n]",str);

        for(i=0;str[i];i++)
        {
                printf("%d\t%c\n",str[i],str[i]);
                if( (str[i]>=97) && (str[i]<=122) )
                        str[i]-=32;
        }
        printf("Caps sentence is %s\n",str);
}

答案 2 :(得分:0)

这是你能做的:

1)您需要一个char数组来存储句子char sen[80];
2)将scanf("%c", &sen);更改为scanf("%s", sen);,因为您未插入单个字符 3)使用循环将数组中的每个char更改为大写:

for (int i = 0; i < 80; i++) {
    sen[i] = toupper(sen[i]);
}

4)更改:printf("The caps are:%c\n", sen);printf("The caps are: %s\n", sen);

int main ()
{
    char sen[80];

    printf("Enter sentence: ");
    scanf("%s", sen);

    for (int i = 0; i < 80; i++) {
        sen[i] = toupper(sen[i]);
    }

    printf("The caps are: %s\n", sen);
    return 0;
}

答案 3 :(得分:0)

您需要一个char数组,说一个字母来存储用户键入的句子。 这里的第一个for循环是使用getchar函数逐字符读取句子char,然后使用putchar函数以大写形式打印字符。

int n = scanner.nextInt();
    int num = 2;
    while (num <= n) {
        int i = 2;
        boolean isPrime = true;
        while (i < num && isPrime) {
            if (num % i == 0) {
                isPrime = false;
            }
            i++;
        }
        if (isPrime) {
            int counter = 1;
            if (n % num == 0) {
                System.out.println(num);
            }
        }
        num++;
    }