输出最长公共前缀#include<iostream> #include<cstring> using namespace std; string func(string s1,string s2) { char *p=s1; int a=strlen(s1)>strlen(s2)?strlen(s1):strlen(s2); for(int i=0;i<a;i++) { if(s1[i]==s2[i]) p++; else break; } return p; } int main() { int n; cin>>n; string s1,s2; cin>>s1>>s2; cout<<func(s1,s2)<<endl; return 0; }
时间: 2024-03-18 12:40:01 浏览: 66
#include <iostream> #include<iomanip> using namespace std;九九乘法表
你的代码有一些问题,可能会导致输出不正确或者出现运行时错误。正确的最长公共前缀代码可以参考下面的实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
string longestCommonPrefix(string s1, string s2) {
int i = 0;
while (i < s1.length() && i < s2.length() && s1[i] == s2[i]) {
i++;
}
return s1.substr(0, i);
}
int main() {
string s1, s2;
cin >> s1 >> s2;
cout << longestCommonPrefix(s1, s2) << endl;
return 0;
}
```
这里使用了 `substr` 函数来截取字符串的前缀部分,避免了使用指针操作的问题。
阅读全文