abc罗大侠
2016-03-18 13:23
采纳率: 86.4%
浏览 2.4k

C++str类函数问题,求解!

1.题目
输入2个字符串,分别用

void str_cat(char*p1,char*p2);int str_cmp(char*p1,char*p2);int str_len(char*p1,char*p2)
输出2个字符串的比较结果,拼接字符串和其长度。
2.我的代码

```#include#includeusing namespace std;void str_cat(char*p1,char*p2);int str_cmp(char*p1,char*p2);int str_len(char*p1,char*p2);int main(){const int s=20;char str1[s];char str2[s];cin.getline(str1,s);cin.getline(str2,s);char* p1,p2;p1=str1;p2=str2;str_cat(p1,p2);str_cmp(p1,p2);str_len(p1);}void str_cat(char*p1,char*p2){cout<<strcat(p1,p2);}int str_cmp(char*p1,char*p2){cout<<strcmp(p1,p2);return 0;}int str_len(char*p){return strlen(p);}

请问我错在那些地方,麻烦给我写出来,万分感谢!!!!!!!!!!!!!!!!!!!!!!!!!**要求运行后显示
1.两个字符串比较后的结果
2.拼接后的字符串
3.其长度**

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2016-03-18 13:55
    已采纳
     void str_cat(char*p1,char*p2)
    {
        while (*p1 != '\0') p1++;
        int i = 0;
        while (p2[i++] != '\0')
        {
            *p1 = p2[i - 1];p1++;
        }
        *p1 = '\0';
    }
    int str_cmp(char*p1,char*p2)
    {
        while (*p1 != '\0' && *p2 != '\0')
        {
            if (*p1 != * p2) return *p1 - *p2;
            p1++;p2++;
        }
        return *p1 - *p2;
    }
    int str_len(char*p1,char*p2)
    {
        int n = 0;
        while (*p1 != '\0') { p1++; n++; }
        while (*p2 != '\0') { p2++; n++; }
        return n;
    }
    int main()
    {
    char s1[100]="hello ";
    char s2[]="world!";
    str_cat(s1, s2);
    printf("%s\n", s1);
    int n = str_cmp("aaa", "ab");
    printf("%d\n", n);
    n = str_len("aaa", "ab");
    printf("%d\n", n);
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • xSeeker~ 2016-03-18 13:37

    *p1=str1[s]; 什么鬼? 应该是p1 = str1吧
    str_cmp[p1,p2];这是什么情况,方括号?
    。。。
    问题多,你直接看修改后的代码吧

     #include <iostream>
    #include <string.h>
    using namespace std;
    void str_cat(char*p1,char*p2);
    int str_cmp(char*p1,char*p2);
    int str_len(char*p1);
    
    int main()
    {
        const int s=20;
        char str1[s];
        char str2[s];
        cin.getline(str1,s);
        cin.getline(str2,s);
        char* p1,*p2;
        p1=str1;
        p2=str2;
        str_cat(p1,p2);
        str_cmp(p1,p2);
        str_len(p1);
    }
    void str_cat(char*p1,char*p2)
    {cout<<strcat(p1,p2);}
    
    int str_cmp(char*p1,char*p2)
    {cout<<strcmp(p1,p2);
    return 0;}
    int str_len(char* p)
    {return strlen(p);}
    
    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-03-18 13:56

    http://codepad.org/oZzuKv6v

    hello world!
    -1
    5

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题