鱼C论坛

 找回密码
 立即注册
查看: 2481|回复: 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。谢谢了

最佳答案

查看完整内容

前四题,练了下手,仅供参考。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  8. char *StrCat(char *dst, const char *src) {
  9.     register char *strDst = dst;
  10.     register const char *strSrc = src;

  11.     while (*strDst) {
  12.         strDst++;
  13.     }
  14.     while (*strDst = *strSrc) {
  15.         strDst++;
  16.         strSrc++;
  17.     }
  18.     return dst;
  19. }

  20. char *StrCpy(char *dst, const char *src) {
  21.     register char *strDst = dst;
  22.     register const char *strSrc = src;

  23.     while (*strDst = *strSrc) {
  24.         strDst++;
  25.         strSrc++;
  26.     }
  27.     return dst;
  28. }

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

  32.     while (*str1 && *str1 == *str2) {
  33.         str1++;
  34.         str2++;
  35.     }

  36.     return *str1 - *str2;
  37. }
复制代码
前四题,练了下手,仅供参考。
小甲鱼最新课程 -> https://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;
}
小甲鱼最新课程 -> https://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;
}
小甲鱼最新课程 -> https://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;
}
小甲鱼最新课程 -> https://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);
}
小甲鱼最新课程 -> https://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;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-12-31 01:27:08 | 显示全部楼层
最后两题是一整个的程序设计,我就不写了,希望能多少帮到你
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-1-9 06:29:22 | 显示全部楼层
{:1_1:}{:1_1:}{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 16:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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