-2

我已经编写了一个工作程序,但该任务的表格不正确。有人可以帮我将代码更改为

“空下(char * s)”

试图改变和定位它,但没有工作结果。不完全了解 void 类型和其他功能中的一个功能,依此类推。

代码:

#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

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

void lower(char *s){
    for(;*s;++s)
        *s=tolower(*s);
}

int main (){
    char s[]="SoMeThing SOmEThing stRing\n";

    printf("%s",s);
    lower(s);
    printf("%s",s);

    return 0;
}
于 2014-05-29T12:36:10.413 回答
0

我不确定这是否是您正在寻找的,但它可能是。

从您的标题和突出显示的部分,我假设您想摆脱

int main() {}

并为其命名

void lower(char *s) {}

虽然您可以通过复制粘贴轻松完成此操作,但请了解该文件不能再单独编译。C 编译器会寻找一个

[return type] main() {}

成为程序的起点。没有这个,就没有程序。

我相信您想创建一个库并在另一个程序中使用较低的功能。为此,我将创建一个包含包含和函数名称的 .h 文件:

void lower(char *s);

这可以用此文件的单个包含替换所有其他包含:

#include "file.h"

您可以在其他程序中使用上述行,以使此功能在这些程序中可用。如果您在库文件中有多个函数并且您不希望它们都可以在文件外部访问,请确保在您不希望使用的方法前面使用“静态”关键字:

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 回答