首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C实现上下大小写的转换

用C实现上下大小写的转换
EN

Stack Overflow用户
提问于 2016-03-10 16:30:49
回答 2查看 778关注 0票数 0

问题陈述

我在解决编程竞赛问题时遇到了困难,其内容如下:

你的名字是英文字母。每个名称将包括一些大写字母从A到Z,一些小写字母从a到z和一些空格。您必须将名称从小写转换为大写。原来大写字母将保持不变,空格也将保留在它们的位置上。

样本输入输出

如果我输入这个..。

代码语言:javascript
复制
5
Hasnain Heickal    Jami
Mir Wasi Ahmed
Tarif Ezaz
     Mahmud Ridwan
Md    Mahbubul Hasan

计算机应该输出.

代码语言:javascript
复制
Case 1: HASNAIN HEICKAL    JAMI
Case 2: MIR WASI AHMED
Case 3: TARIF EZAZ
Case 4:      MAHMUD RIDWAN
Case 5: MD    MAHBUBUL HASAN
  • 请注意,在分号和名称的首字母之间需要一个空格。

我的编码

这就是我用C编写的代码

代码语言:javascript
复制
#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(void)
{
    int T, i;
    char string [100];
    scanf("%d", &T);

    for (i=0; i<T; i++) 
    {
        gets(string);
        printf("Case %d: ", i);

        while (string[i])
        {
            putchar (toupper(string[i]));
            i++;
        }          

        printf("\n");
     }  

    getch();
    return 0;
}

现在,这段代码无法产生所需的输出。我在哪里做错了?我的语法有什么问题吗?有人能指引我吗?请记住,我是一个中学生,只是一个C的初学者。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-10 16:34:14

你需要一个地遍历字符串中的每个字母。

在下面的代码中,我使用变量K完成了这一操作,变量从0到字符串的长度不等。

变量I跟踪字符串的数量。

代码语言:javascript
复制
int main(void)
{
  int T, i, k;
  char string [100];

  scanf("%d", &T);

  for ( i = 0; i < T; ++i)
  {
     gets (string);

     for(k=0; k<strlen(string); ++k)
     {
         putchar (toupper(string[k]));
     }
  }  

  getch();
  return 0;
}

回答你的问题:http://ideone.com/SN6g4s

代码语言:javascript
复制
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(void)
{
  int T, i,k;
  char string [100];

  scanf("%d ", &T);

  for ( i = 0; i < T; ++i)
  {
     gets (string);
     printf("[%d] : %s\n", i, string);

     for(k=0; k<strlen(string); ++k)
     {
         putchar (toupper(string[k]));
     }
     putchar('\n');
  }  

  return 0;
}
票数 2
EN

Stack Overflow用户

发布于 2016-03-10 16:51:19

请根据您的需求,检查代码并实现测试用例场景。

代码语言:javascript
复制
#include <stdio.h>
#include<string.h>
int main(){
  char string[100];
  int i;
  scanf("%s",string);
  for(i=0;i<strlen(string);i++){
       string[i]=string[i]-32;
  }
  printf("%s",string);
  return 0;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35922076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档