2 qq 33486292 qq_33486292 于 2016.03.18 21:23 提问

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个回答

caozhy
caozhy   Ds   Rxr 2016.03.18 21: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);
}
caozhy
caozhy   Ds   Rxr 2016.03.18 21:56

http://codepad.org/oZzuKv6v

hello world!
-1
5

bealing
bealing   Rxr 2016.03.18 21: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);}
qq_33486292
qq_33486292 。。。心急了点。1.拼接字符串出来了。但是2.比较的结果没显示3.拼接后的字符串长度没显示
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据结构(C语言版)迷宫求解问题
初学数据结构和C语言,尝试实现了迷宫求解问题。代码组织比较差,改进的地方也有很多,博君一乐而已。希望能够帮助到别人
string类函数的c实现
string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现
深度优先搜索解决迷宫问题(c的实现)
经典栈队列以及深度优先算法的代码例子,便于学习和参考。
用动态规划法求解最大子段和问题 C语言实现
用动态规划法求解最大子段和问题 C语言实现
C语言数据结构顺序栈之迷宫求解最短路径
数据结构习题与解析(B级第3版) 李春葆 喻丹丹 编著 3.2
最大团问题(C语言算法设计与分析)
最大团问题(C语言算法设计与分析),里面有完整的C语言源代码,能正确运行,附带有课程设计说明书。
分治法求解凸包问题
利用分治法求解凸包问题!c语言 #include<stdio.h> #define PPmax 30 #define random(x) (rand()%x) typedef struct node{ float x,y; }Point; Point DingDian[PPmax];//用于存放凸边形的顶点 int DingDnum=0; typedef struct Pointss { Point p1,p2; }SDian;
《C语言程序设计 问题与求解方法》
《C语言程序设计 问题与求解方法》.doc
多态性函数
C/C++的基础类函数,面向对象的基础类函数。
c语言解决迷宫问题
不用递归实现迷宫问题求解 vc6.0下运行