一题二级C题目

来源:百度知道 编辑:UC知道 时间:2024/05/30 15:01:36
3. 编程题
请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。
例如,若输入ABC4efG,则应输出aBc4efg。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char *ss)
{

}
void main()
{
char tt[81];
system("CLS");
printf("\nPlease enter an string within 80 characters:\n");
gets(tt);
printf("\n\nAfter changing, the string\n %s",tt);
fun(tt);
printf("\nbecomes\n %s\n",tt);
}

答案是:
void fun(char *ss)
{
int i;
for(i=0;ss[i]!='\0';i++) /*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/
if(i%2==0&&ss[i]>='A'&& ss[i]<='Z')
ss[i]=ss[i]+32;
}
我的代码是:
void fun(char *ss)
{
int i,n;

void fun(char *ss)
{
int i,n=0;
char *p=ss;
while(*p)//循环时没有对p进行前进
{
n++;
p++;//如果你不++ 那么他永远是一个值 死循环了 建议使用strlen 比这方便
}
p=ss;
for(i=0;i<n;i=i+2)
{
if(*(p+i)>='A'&&*(p+i)<='Z')
*(p+i)=*(p+i)+32;
}