大家好我需要用一个用户输入的句子并将其全部写成大写字母。但是,我还不能使用字符串,所以我认为我需要使用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;
}
答案 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++;
}