简单的toupper编码在C中

时间:2015-10-08 09:38:00

标签: c toupper

我想在我的笔记本电脑上进行简单的toupper编码(Windows 7)。似乎我写的任何东西在开头只占用了1个单词。

我是否使用%s /%c /%[^ \ n]

我想做什么?

我正在使用Microsoft Visual C ++ 2010 Express

#include <stdio.h>
#include <ctype.h>

int main()
{
    char kalimat;
    scanf ("%[^\n]",&kalimat);
    kalimat=toupper(kalimat);
    printf("%s",kalimat);
    getchar ();
    return(0);
}

2 个答案:

答案 0 :(得分:1)

你想读一个单词。为此,您需要一个预定义大小的char数组。所以改变

char kalimat;

char kalimat[64]; /* Can hold 63 chars, +1 for the NUL-terminator */

接下来,您要扫描一个单词。所以改变

scanf("%[^\n]",&kalimat);

scanf("%63s", kalimat);

此处所做的更改是

  1. 用于扫描单词的%s的使用,而不是用于扫描字符的%c
  2. 删除&符,因为%s需要char*,而不是char**char(*)[64]
  3. 使用长度说明符(此处为63)以防止缓冲区溢出。
  4. 然后,如果你想

    1. 对数组/单词的第一个字符进行加密,使用

      kalimat[0] = toupper(kalimat[0]);
      

      *kalimat = toupper(*kalimat);
      
    2. 大写数组中的所有字符,在数组的每个索引上使用一个调用toupper的循环:

      int i, len; /* Declare at the start of `main` */
      
      for(i = 0, len = strlen(string); i < len; i++) /* Note: strlen requires `string.h` */
          kalimat[i] = toupper(kalimat[i]);
      
    3. 但是......你可能需要改变

      getchar ();
      

      int c; /* Declare at the start of `main` */
      while((c = getchar()) != EOF && c != '\n');
      

      以防止关闭。

      固定代码:

      #include <stdio.h>
      #include <ctype.h>
      #include <string.h> /* For `strlen` */
      
      int main()
      {
          int i, len, c;
          char kalimat[64];
      
          scanf ("%63s", &kalimat);
      
          /* `*kalimat = toupper(*kalimat);` */
          /* or */
          /* `kalimat[0] = toupper(kalimat[0]);` */
          /* or */
          /* `for(i = 0, len = strlen(string); i < len; i++) 
              kalimat[i] = toupper(kalimat[i]);` */
      
          printf("%s", kalimat);
      
          while((c = getchar()) != EOF && c != '\n');
          return(0);
      }
      

答案 1 :(得分:0)

C库函数:

int toupper(int c);

将小写字母转换为大写字母

如果要将字符串的所有字母打印为大写字母:

int i=0;
while(str[i])
{
 putchar (toupper(str[i]));
 i++;
}

但是,对于单个字符的大写,您只需使用:

 putchar (toupper(mychar));

如果存在一个函数或返回发送给它的相同字符,该函数返回大写。

在C中你可以存储一个字符串:

 char *string1="Elvis";
 char string2[]="Presley";
 char string3[4]="King";