前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Contest100000570 – 《算法笔记》2.6小节——C/C++快速入门->函数

Contest100000570 – 《算法笔记》2.6小节——C/C++快速入门->函数

作者头像
可定
发布2020-04-20 14:56:50
3020
发布2020-04-20 14:56:50
举报
文章被收录于专栏:细嗅蔷薇

http://codeup.cn/contest.php?cid=100000570

Problem A: 习题7-5 字符串逆序存放

Time Limit: 1 Sec Memory Limit: 12 MB

Submit: 2469 Solved: 1716

Description

写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。

Input

一行字符串。

Output

输入字符串反序存放后的字符串。单独占一行。

Sample Input

abcd

Sample Output

dcba

代码(C语言)

代码语言:javascript
复制
#include<stdio.h>
void func(char a[10]){
    for(int i = 0; i < 4; i++){
        printf("%c",a[4-i-1]);
    }
}
int main(){
    char a[10];
    gets(a);
    func(a);
    printf("\n");
    return 0;
}

注意:不能将字符数组的大小设置为4(因为还需要\0)。

代码语言:txt
复制
 func需要传入参数。
代码语言:javascript
复制
func();
void func(){
    for(int i = 0; i < 4; i++){
        printf("%c",a[4-i-1]);
    }
}

是错的

Problem B: 习题7-7 复制字符串中的元音字母

Time Limit: 1 Sec Memory Limit: 12 MB

Submit: 2653 Solved: 1617

Description

写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。

Input

一个字符串(一行字符)。

Output

该字符串所有元音字母构成的字符串。行尾换行。

Sample Input

CLanguage

Sample Output

auae

HINT

可以采用如下函数原型

void vowels(char s1[], char s2[]);

代码(C语言)

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
void vowels(char s1[], char s2[]);
void vowels(char s1[], char s2[]){
    int a = 0;
    for(int i = 0; i < strlen(s1); i++){
        switch(s1[i]){
            case 'A' :
                s2[a] = s1[i];
                a++;
                break;
            case 'E' :
                s2[a] = s1[i];
                a++;
                break;
            case 'I' :
                s2[a] = s1[i];
                a++;
                break;
            case 'O' :
                s2[a] = s1[i];
                a++;
                break;
            case 'U' :
                s2[a] = s1[i];
                a++;
                break;
            case 'a' :
                s2[a] = s1[i];
                a++;
                break;
            case 'e' :
                s2[a] = s1[i];
                a++;
                break;
            case 'i' :
                s2[a] = s1[i];
                a++;
                break;
            case 'o' :
                s2[a] = s1[i];
                a++;
                break;
            case 'u' :
                s2[a] = s1[i];
                a++;
                break;
        }
    }
}
int main(){
    char s1[10],s2[10];
    memset(s1,0,sizeof(s1));
    memset(s2,0,sizeof(s2));
    gets(s1);
    vowels(s1,s2);
    printf("%s",s2);
    printf("\n");
    return 0;
}

注意:字符串要进行memset初始化,否则会出现Wrong Answer。

代码2(C++)

代码语言:javascript
复制
#include<cstdio>
#include<cstring>

void vowels(char s1[], char s2[]);

int main(){
    char s1[50];
    char s2[50];
    memset(s1,0,sizeof(s1));
    memset(s2,0,sizeof(s2));
    gets(s1);
    vowels(s1,s2);
    puts(s2);
    return 0;
}

void vowels(char s1[], char s2[]){
    int len;
    char c;
    int j=0;
    len = strlen(s1);
    for(int i=0;i<len;i++){
        c = s1[i];
        if(c=='A'||c=='a'||c=='E'||c=='e'||c=='I'||c=='i'||c=='O'||c=='o'||c=='U'||c=='u'){
            s2[j]=c;
            j++;
        }

    }

}

疑问:可否通过判断s1的结束符的方法解决。

while(a[i]!='\0')//'\0'代表ASCLL码0的字符,即是一个空操作符也就是是结束符;

版权所有:可定博客 © WNAG.COM.CN

本文标题:《Contest100000570 – 《算法笔记》2.6小节——C/C++快速入门->函数》

本文链接:https://cloud.tencent.com/developer/article/1616884

特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem A: 习题7-5 字符串逆序存放
  • Problem B: 习题7-7 复制字符串中的元音字母
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档