fun是将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母则不换)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fun是将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母则不换)相关的知识,希望对你有一定的参考价值。

帮我看看 ,我哪里错了
#include <stdio.h>
#include <string.h>
void fun(char *ss)
int i;
for(i=1;i<strlen(ss);i=i+2)
if((ss[i]>='a') && (ss[i]<='z'))ss[i]=ss[i]-'32';
return ss;

首先你的fun函数定义的是void类型,不需要返回值,所以return ss是错的,你传入的是ss数组的地址,所以本身就在原数组的空间上做相应的操作,也就不需要返回值。追问

char *p = ss ;
int i = 0 ;
while(*p)
if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -= 32 ;
p++ ;
i++ ;

return ss ;
这是正确答案,可以return啊

追答

额 。。。。void型函数即使return、也是return空值。。。。。这个程序要在vc里运行时不通过编译的。。。

参考技术A i=0;
ss[i]=ss[i]-32;

也可以这么写
ss[i]=ss[i]-('a'-'A');本回答被提问者和网友采纳
参考技术B i初值应该是0
函数是void类型,所以不应该有return语句
参考技术C void fun(char *ss)

int i;
int k=0;
char a[100];
while(*ss)
a[k++]=*ss++;
a[k]=0;
printf("%s\n",a);
for(i=1;i<k;i=i+2)
if((a[i]>='a') && (a[i]<='z'))
a[i]=a[i]-32;
printf("%s\n",a);
追问

运行了一下,你的结构运行出来是错误的

追答

报什么错呢?

c语言程序设计请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为

c语言程序设计请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char a[])

    int i;
    int t=strlen(a);
    for(i=0;i<t;i++)
    
        if(i%2!=0)
        
            if(toascii(a[i])>=97&&toascii(a[i])<=122)
            
                a[i]=(char)(toascii(a[i])-32);
            
        
    
    puts(a);

int main()

    char a[100];
    gets(a);
    fun(a);
    return 0;

参考技术A #include <stdio.h>
void fun( char *ss )

int i;
for( i=0;ss[i];i++ )

if ( i%2 )

if ( ss[i]>='a' && ss[i]<='z' )
ss[i] += 'A'-'a' ;



void main()

    char s[]="hello world" ;
    printf("%s\\n", s );
    fun(s);
    printf("%s\\n", s );

参考技术B void fun(char* str)

for (int i=1; i<strlen(str); i++)

if (i%2==1&&str[i]<122&&str[i]>96)

str[i]=str[i]-32;





以上是关于fun是将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母则不换)的主要内容,如果未能解决你的问题,请参考以下文章

请编写一个程序将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

将字符串ss中所有下标为奇数位置上的字母转换为大写

C语言试题三十六之将s所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

C语言试题三十六之将s所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

C语言试题五十之请编写一个函数void function(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。

C语言试题五十之请编写一个函数void function(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。