问题描述
- 关于数组指针的c++程序,不知道为什么错了
-
#include
#include
using namespace std;
int main(){
char str1[80], str2[80];
char pc1 = str1, *pc2 = str2;
cin >> pc1 >> pc2;
char a[80][80];
for (unsigned i = 0; i<strlen(str1) - strlen(str2) + 1; i++){
for (unsigned j = 0; j<strlen(str2); j++)
a[i][j] = *(pc1 + i + j);
}
char(*pa)[80];
pa = a;
for (unsigned i = 0; i<strlen(str1) - strlen(str2) + 1; i++){
if (strcmp((pa + i), str2) == 0)
cout << str1[i];}
}
解决方案
http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242138.html
解决方案二:
这样改没有error了,只是不知道要求获得什么结果?
#include <iostream>
#include "string.h"
using namespace std;
int main(){
char str1[80], str2[80];
char *pc1 = str1;
char *pc2 = str2;
cin >> pc1 >> pc2;
char a[80][80];
for (unsigned i = 0; i<strlen(str1) - strlen(str2) + 1; i++){
for (unsigned j = 0; j<strlen(str2); j++)
a[i][j] = *(pc1 + i + j);
}
char (*pa)[80];
pa = a;
for (unsigned i = 0; i<strlen(str1) - strlen(str2) + 1; i++){
if (strcmp((*pa + i), str2) == 0)
cout << str1[i];
}
}
解决方案三:
你的pc1和pc2是地址,并不是变量,你输入进去根本不知道指到哪里了
时间: 2024-10-26 08:25:27