Linux Linux程序练习六

Posted 庖丁解牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Linux程序练习六相关的知识,希望对你有一定的参考价值。

题目:实现一个so库文件名称为listupper.so,so文件中实现一个函数,函数名为void upper(const char *src, char *desc),
调用update后将参数src所指向的字符串中所有字符转化为大写字母,结果放入desc字符串中。分别用C语言编写一个程序test1,
调用libupper.so中的upper函数,用C++语言编写一个程序test2,调用libupper.so中的upper函数。

 

upper.h

#ifndef _upper
#define _upper

//兼容g++编译器
#ifdef __cplusplus
extern "C"
{
#endif
void upper(const char * src,char *desc);
#ifdef __cplusplus
}
#endif

#endif

 

 

upper.c

/*
 根据函数签名分析,desc是调用函数分配内存
 */
#include <stdio.h>
void upper(const char * src,char *desc)
{
    if(src==NULL||desc==NULL)
    {
        printf("传入参数不可以为空!\\n");
        return;
    }
    while(*src)
    {
        if(*src>96&&*src<123)
        {
            //说明该字符是小写字母
            *desc++=*src-32;
            src++;
        }else
        {
            *desc++=*src++;
        }
    }
}

 

test1.c

#include <stdio.h>

#include <unistd.h>

#include "upper.h"

int main(int arg,char * args[])
{
    printf("请输入不超过100个字节大小的字符串!\\n");
    char buf[100]={0};
    char desc[100]={0};
    int num=0;
    num=read(STDIN_FILENO,buf,sizeof(buf));
    if(num==0) return 0;
    upper(buf,desc);
    printf("\\n用户输入的字符串是:%s",desc);
    return 0;
}

 

运行结果

以上是关于Linux Linux程序练习六的主要内容,如果未能解决你的问题,请参考以下文章

为什么程序猿都应该学点linux命令?

linux练习题

linux 5-9单元练习

Linux-unit5-6练习

Linux小练习进度条程序

LINUX REDHAT第5-6单元练习题