我需要你帮助我们坚持K& R练习1-13。它的功能!我通过几乎所有的章节来了,但坚持功能。我无法理解如何使用函数。我知道如何做简单的功能,但当我遇到更复杂的功能时,我就会坚持下去!不知道如何传递值,K& R功率函数的例子有点难以理解。但无论如何,我需要你在练习1-13中的帮助,如果它可以让你完成它,那么我可以阅读代码并理解如何使用函数。
在这里自我锻炼:
编写程序将其输入转换为小写,使用函数lower(c)如果c不是字母则返回c,如果c是字母则返回小写值
如果您了解某些链接或任何有关如何使用更难的函数的有用信息(不像将字符串传递给main,而是将算法传递给它),请将它们链接起来。
这也不是K& R的2版
答案 0 :(得分:1)
/*
* 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;
}
答案 1 :(得分:0)
如果你已经阅读了K&amp; 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;
}