将int更改为void

时间:2014-05-29 11:54:30

标签: c tolower

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

" void lower(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;
}

谢谢

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

我不确定这是你在找什么,但可能是。

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

int main() {}

并标题为

void lower(char *s) {}

虽然您可以使用复制粘贴轻松完成此操作,但请了解此文件无法再自行编译。 C编译器将查找

[return type] main() {}

成为该计划的起点。没有这个,没有程序。

我相信你想要创建一个库并在另一个程序中使用lower函数。为此,我将使用包含和函数名称创建一个.h文件:

void lower(char *s);

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

#include "file.h"

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

static int otherFunction();

如果您正在寻找答案,请告诉我们。如果没有,请尝试澄清您的请求。

答案 2 :(得分: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的字符,而不是仅打印它们。