鱼C论坛

 找回密码
 立即注册
查看: 2165|回复: 8

C语言指针问题

[复制链接]
发表于 2014-12-30 21:07:30 | 显示全部楼层 |阅读模式
100鱼币
一、指针测试题
分别设计下面函数,然后在main函数中调用。
1、 设计一个函数:int  strlen(char *p)p所指的字符串的长度。
2、设计一个函数:strcat(char *p,char *q),将q所指的字符串连接到p所指的字符串的尾部。
3、设计一个函数:strcpy(char *p,char *q),将q所指的字符串复制到到p所指的空间中。
4、设计一个函数:int strcmp(char *p,char *q),比较q所指的字符串和到p所指的字符串,并返回正整数(大于时)、0(等于时)和负整数(小于时)。
5、大小写转换
6、已知一个班5名学生(以姓名存储),输入一个学生姓名,查找这名学生是否属于该班,输出响应提示。要求:5名学生放入指针数组。
二、结构体测试题
定义学生结构体类型(包含)numbernameagesexscore五个成员项),初始化三个学生数据,按格式输出这三个学生信息。


有谁会可以联系我QQ8135416.软件为vc++6.0。谢谢了

最佳答案

查看完整内容

前四题,练了下手,仅供参考。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-30 21:07:31 | 显示全部楼层
int StrLen(const char *p) {
    register const char *str = p;
    while (*str) {
        str++;
    }
    return str - p;
}

char *StrCat(char *dst, const char *src) {
    register char *strDst = dst;
    register const char *strSrc = src;

    while (*strDst) {
        strDst++;
    }
    while (*strDst = *strSrc) {
        strDst++;
        strSrc++;
    }
    return dst;
}

char *StrCpy(char *dst, const char *src) {
    register char *strDst = dst;
    register const char *strSrc = src;

    while (*strDst = *strSrc) {
        strDst++;
        strSrc++;
    }
    return dst;
}

int StrCmp(const char *s1, const char *s2) {
    register const char *str1 = s1;
    register const char *str2 = s2;

    while (*str1 && *str1 == *str2) {
        str1++;
        str2++;
    }

    return *str1 - *str2;
}
前四题,练了下手,仅供参考。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 00:36:22 | 显示全部楼层
本帖最后由 j_t_zeng 于 2014-12-31 00:50 编辑

好久没搞c了,不知道还合不合理,电脑重装了,软件也没了,没测试过的
一。1
int strlen(char *p){
  int i;
  for(i = 0; *(p+i) != '\0'; ++i){
  }

return i;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 00:50:07 | 显示全部楼层
一,2
void strcat(char *p, char *q){
    int i, j;
    for(i = 0; *(p+i) != '\0'; ++i){
    }
    j=0;
    do{
        *(p+i) = *(q+j);
        ++i;
        ++j;
    }while(*(q+j) != '\0');
    return;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 00:54:58 | 显示全部楼层
一,3

void strcpy(char *p, char *q){
    int i = 0;
    do{
        *(p+i) = *(q+i);
        ++i;
    }while(*(q+i) != '\0');
    return;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 01:09:09 | 显示全部楼层
一,4
void int strcmp(char *p, char *q){
    int i = 0;
    while(*(p+i) == *(q+i)){
        if(*(p+i) == '\0')
            return 0;
        ++i;
    }
    return *(p+i) - *(q+i);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 01:22:03 | 显示全部楼层
一,5
这个题目不知道是要求一个字符的还是字符串的,所以都写上,
char chgmodchar(char c){
    if(c >= 'A'  && c <= 'Z')
        return c + 'a' - 'A';
    if(c >= 'a  && c <= 'z')
        return c + 'a' - 'A';
    return c;
}

void chgmodstr(char *p){
    for(int i = 0; *(p+i) != '\0'; ++i){
        *(p+i) = chgmodchar(*(p+i));
    }
    return;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 01:27:08 | 显示全部楼层
最后两题是一整个的程序设计,我就不写了,希望能多少帮到你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-9 06:29:22 | 显示全部楼层
{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 14:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表