-2

作業プログラムを作成しましたが、フォームがタスクに対して正しくありません。誰かがコードを変更するのを手伝ってくれませんか

"void Lower(char* s)"

それを変更して配置しようとしましたが、うまくいきませんでした。void 型と 1 つの関数が他の関数などを完全に理解していません。

コード:

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

int main ()
{
  int i=0;
  const char s[]="SoMeThing SOmEThing stRing\n";
  char lower;
  printf("%s",s);
  while (s[i])
  {
    lower=s[i];
    putchar(tolower(lower));
    i++;
  }
  return 0;
}

ありがとうございました

4

3 に答える 3

0

これがあなたが探しているものかどうかはわかりませんが、そうかもしれません。

あなたのタイトルと強調表示された部分から、私はあなたが取り除きたいと思っていると思います

int main() {}

そしてタイトルをつける

void lower(char *s) {}

これはコピー ペーストで簡単に実行できますが、このファイルは単独ではコンパイルできないことを理解しておいてください。C コンパイラは、

[return type] main() {}

プログラムの出発点となります。これがなければ、プログラムはありません。

ライブラリを作成して、下位の関数を別のプログラムで使用したいと考えていると思います。これを行うには、インクルードと関数名を含む .h ファイルを作成します。

void lower(char *s);

これにより、他のすべてのインクルードをこのファイルの単一のインクルードに置き換えることができます。

#include "file.h"

上記の行を他のプログラムで使用して、これらのプログラムでこの機能を使用できるようにすることができます。ライブラリ ファイルに複数の関数があり、それらすべてにファイルの外部からアクセスできないようにする場合は、使用したくないメソッドの前に 'static' キーワードを必ず使用してください。

static int otherFunction();

これが賢明な答えを探しているかどうかをお知らせください。そうでない場合は、リクエストを明確にするようにしてください。

于 2014-05-29T12:13:52.587 に答える
0

この機能は動作するはずです。

#include <string.h>

/* The function changes every upper-case letter of string s
   to its corrispondent lower-case. */
void lower(char *s)
{
    /* Iterates through string */
    for (int i = 0; i != strlen(s); i++) {
        s[i] = tolower(s[i]);
    }
}

このvoid型は、関数が値を返さないことを意味します。関数は何らかの作業を行って終了するだけで、呼び出し元には何も返しません。

この関数は、文字列 s の文字を表示するだけでなく、それらの文字を変更することに注意してください。

于 2014-05-29T12:15:14.200 に答える