Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言编程K&;R练习1-13_C - Fatal编程技术网

C语言编程K&;R练习1-13

C语言编程K&;R练习1-13,c,C,我需要你们的帮助,伙计们,我被困在K&R练习1-13中。这是关于功能的!我几乎读完了所有的1章,但还是停留在函数上。我不明白如何使用函数。嗯,我知道如何做简单的功能,但当我谈到更复杂的一个,我就卡住了!不知道如何传递值,幂函数的K&R示例有点难以理解。但是无论如何,如果你能完成练习1-13,我需要你的帮助,这样我才能阅读代码并理解如何使用函数。 在这里自我锻炼: 编写一个程序,使用函数lower(c)将其输入转换为小写,如果c不是字母,则返回c;如果c是字母,则返回c的小写值 如果您知道一些链接

我需要你们的帮助,伙计们,我被困在K&R练习1-13中。这是关于功能的!我几乎读完了所有的1章,但还是停留在函数上。我不明白如何使用函数。嗯,我知道如何做简单的功能,但当我谈到更复杂的一个,我就卡住了!不知道如何传递值,幂函数的K&R示例有点难以理解。但是无论如何,如果你能完成练习1-13,我需要你的帮助,这样我才能阅读代码并理解如何使用函数。
在这里自我锻炼:
编写一个程序,使用函数lower(c)将其输入转换为小写,如果c不是字母,则返回c;如果c是字母,则返回c的小写值

如果您知道一些链接或任何关于如何使用更难的函数的有用信息(不像将字符串传递给main,而是算术函数),请将它们链接起来

此外,这不是K&R的第2版/*
/*
 * A function that takes a charachter by value . It checks the ASCII value of the charchter
 * . It manipulates the ASCII values only when the passed charachter is upper case . 
 * For detail of ASCII values see here -> http://www.asciitable.com/
 */
char lower(char ch){

    if(ch >= 65 && ch <=90)
    {    ch=ch+32;
    }
    return ch;


}
int main(int argc, char** argv) {
    char str[50];
    int i,l;
    printf("Enter the string to covert ");
    scanf("%s",str);
    /*
     Get the length of the string that the user inputs 
     */
    l=strlen(str);

    /* 
     * Loop over every characters in the string . Send it to a function called
     * lower . The function takes each character  by value . 
     */
    for(i=0;i<l;i++)
    str[i]=lower(str[i]);

    /*
     * Print the new string 
     */

    printf("The changes string is %s",str);
    return 0;
}
*按值接受字符的函数。它检查charchter的ASCII值 * . 仅当传递的字符为大写时,它才操纵ASCII值。 *有关ASCII值的详细信息,请参见此处->http://www.asciitable.com/ */ char lower(char ch){
如果(ch>=65&&ch如果您已经阅读了K&R的第1章,其中使用了一个简单的getchar()/putchar()组合和while循环。来获取和显示字符,我相信您会发现这个程序很熟悉

#include<stdio.h>

int main()
{

int ch; 
    while( (ch = getchar()) != EOF)
    {
        if((ch>=65)&&(ch<=122))
        {
          if((ch>=97)&&(ch<=122))
              ch=ch-32;
          else if((ch>=65)&&(ch<=90))
          ch=ch+32;
        }
         putchar(ch);
    }
return 0;
}
#包括
int main()
{
int-ch;
而((ch=getchar())!=EOF)
{

如果((ch>=65)&&(ch=97)&&(ch=65)&&(Ch你的谷歌查询是什么?我怀疑你的研究技能不足。确保你使用的是一本最新的书;IT行业变化非常快,任何使用史前技术的人都会被甩在后面。@可修改的左值我想问一下,我是否能在谷歌找到任何有用的信息。mb我的研究技能有点差。“…如果你能完成它…”你至少试着“完成它”怎么样"然后回来,手里拿着代码,带着关于你在这样做时遇到的问题的问题。@WhozCraig回答得很好。我正在研究它!@AlexGreat。如果你自己第一次尝试代码会更好。stackoverflow的人已经准备好帮助那些首先自助的人。你可以发布你不想发布的代码片段derstand。但是我知道你可能在挣扎,所以我发布了一个小的解决方案。有多种方法可以解决这个问题。这里只有一种。可能不是最好的。可能不是最优化的。希望它能让你开始。太好了!这就是我一直在寻找的。非常感谢。我实际上在尝试做这件事的时候做了几乎相同的事情我的K&R是不同的。我使用的是俄文版的K&R。书中90%的例子完全不同