c++,完成程序,只在Program和End之间增加代码。 英语单词的后缀构成有一定的规律,例如”teacher”和”programmer”有相同后缀”er”。请完成如下的C++函数功能:findCommonSuffix(char * word1, char * word2, char * suffix),该函数分析得到word1和word2两个单词的最长共同后缀,分析结果存到参数suffix中。 例如,”globally”和”internally”的最长共同后缀是”ally”,”gloves”和”dove”的最长共同后缀是空串。 提示:可能用到的字符串函数说明如下: strlen(const char * str):返回字符串str的长度; strcpy(char * dest, const char * src):把字符串src复制到dest; strcat(char * dest, const char * src):把字符串src连接到dest后面; char * strstr(const char * s1, const char * s2):从s1中查找子串s2第一次出现的位置。
时间: 2023-11-22 13:54:50 浏览: 129
以下是实现该功能的C++代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
void findCommonSuffix(char *word1, char *word2, char *suffix) {
int len1 = strlen(word1);
int len2 = strlen(word2);
int minLen = min(len1, len2);
int i;
for (i = 1; i <= minLen; i++) {
if (strcmp(word1 + len1 - i, word2 + len2 - i) != 0) {
break;
}
}
if (i == 1) {
suffix[0] = '\0';
} else {
strcpy(suffix, word1 + len1 - i + 1);
}
}
int main() {
char word1[] = "globally";
char word2[] = "internally";
char suffix[100];
findCommonSuffix(word1, word2, suffix);
cout << suffix << endl;
char word3[] = "gloves";
char word4[] = "dove";
findCommonSuffix(word3, word4, suffix);
cout << suffix << endl;
return 0;
}
```
该函数首先获取两个单词的长度,然后比较它们的末尾字符是否相同,直到找到第一个不相同的字符。这个字符之后的部分就是它们的最长共同后缀。如果没有共同后缀,则返回空串。
阅读全文