C++str类函数问题,求解!-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

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

2016-03-09 13:07:40 1370 1

1.题目
输入2个字符串,分别用
void str_cat(charp1,charp2);int str_cmp(charp1,charp2);int str_len(charp1,charp2)
输出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.其长度**

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:55:49
     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);
    }
    0 0
+关注
0
文章
14879
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载