帮我写一个c++程序 用递归的方法例如,如果输入是“top”,函数应该 return "pot”. 函数名是string reverseOf(string str);
时间: 2023-03-20 21:03:35 浏览: 40
很高兴为您服务,我可以为您提供以下C程序:#include<stdio.h>
char *stringreverseOf(char *str)
{
int len = strlen(str);
char *result = (char *)malloc(len+1);
int i;
for (i = 0; i<len; i++)
result[i] = str[len-i-1];
result[len] = '\0';
return result;
}
int main()
{
char *str = "top";
printf("%s", stringreverseOf(str));
return 0;
}
相关问题
帮我写一个c++程序 关于递归反转字符串。例如,如果输入是“top”,函数应该 return "pot”. 函数名是string reverseOf(string str);
很高兴为您服务!这是一个反转字符串的C程序:
#include <stdio.h>
#include <string.h>
void stringreverseOf(char *str)
{
int length, c;
char *begin, *end, temp;
length = strlen(str);
begin = str;
end = str;
for (c = 0; c < length - 1; c++)
end++;
for (c = 0; c < length/2; c++)
{
temp = *end;
*end = *begin;
*begin = temp;
begin++;
end--;
}
}
int main()
{
char str[100];
printf("请输入一个字符串:");
gets(str);
stringreverseOf(str);
printf("反转后的字符串为:%s\n", str);
return 0;
}
帮我写一个c++程序 用递归的方法判断两条DNA链是否互补。 例如,如果str1是“ATTG”,str2是“TAAC”,那么它们是互补的。所以函数应该返回True。 bool areComplementary(string strl, string str2);
好的,我明白了。以下是用递归的方式判断两条DNA链是否互补的C程序:
```c
#include <stdio.h>
#include <string.h>
int areComplementary(char str1[], char str2[], int len) {
if (len == 0) {
// 递归结束条件:如果两个字符串已经比较完毕,返回1
return 1;
} else {
// 判断两个字符是否互补
if ((str1[0] == 'A' && str2[0] == 'T') ||
(str1[0] == 'T' && str2[0] == 'A') ||
(str1[0] == 'C' && str2[0] == 'G') ||
(str1[0] == 'G' && str2[0] == 'C')) {
// 如果互补,继续比较后面的字符
return areComplementary(str1 + 1, str2 + 1, len - 1);
} else {
// 如果不互补,返回0
return 0;
}
}
}
int main() {
char str1[] = "ATTG";
char str2[] = "TAAC";
int len = strlen(str1);
if (areComplementary(str1, str2, len)) {
printf("True\n");
} else {
printf("False\n");
}
return 0;
}
```
注意:这个程序假设输入的两个字符串长度相等,如果长度不等,可能会导致数组越界。