C语言对串求逆的递推算法
时间: 2024-05-05 11:16:24 浏览: 7
下面是C语言对串求逆的递推算法:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int n = strlen(str);
for (int i = 0; i < n / 2; i++) {
char temp = str[i];
str[i] = str[n - i - 1];
str[n - i - 1] = temp;
}
printf("字符串的逆序为:%s", str);
return 0;
}
```
该算法的思路是:将字符串的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换,以此类推,直到交换完所有对称的字符,就得到了字符串的逆序。
相关问题
C语言字符串转数字递归算法
以下是C语言字符串转数字的递归算法:
```c
int strToNum(char *str, int len) {
if (len == 1) {
return str[0] - '0';
} else {
return (10 * strToNum(str, len - 1)) + (str[len - 1] - '0');
}
}
```
这个函数接收两个参数: `str` 是待转换的字符串,`len` 是字符串的长度。该函数递归地将字符串转换为数字,最后返回数字。
当字符串长度为1时,将第一个字符转换成数字并返回。
当字符串长度大于1时,递归调用 `strToNum` 函数来计算字符串的前缀的数字值。然后将该值乘以10,再加上字符串的最后一个字符的数字值,最后返回这个结果。
使用方法:
```c
int main() {
char str[] = "1234";
int len = strlen(str);
int num = strToNum(str, len);
printf("%d\n", num); // 输出 "1234"
return 0;
}
```
C语言字符串拼接的算法
C语言中字符串拼接的算法有多种实现方式,以下是其中两种常见的方法:
1. 使用strcat函数:
C语言提供了一个字符串拼接函数strcat,可以将一个字符串追加到另一个字符串的末尾。使用该函数需要包含头文件<string.h>。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[] = " World!";
strcat(str1, str2);
printf("拼接后的字符串为:%s\n", str1);
return 0;
}
```
运行结果为:拼接后的字符串为:Hello World!
2. 使用循环遍历拼接:
可以使用循环遍历的方式将一个字符串的每个字符逐个拷贝到另一个字符串的末尾,直到拷贝完所有字符。需要注意的是,目标字符串的长度要足够大,以容纳源字符串和目标字符串的字符。
示例代码如下:
```c
#include <stdio.h>
int main() {
char str1[20] = "Hello";
char str2[] = " World!";
int i, j;
// 找到str1的末尾位置
for (i = 0; str1[i] != '\0'; i++);
// 将str2的字符逐个拷贝到str1的末尾
for (j = 0; str2[j] != '\0'; j++) {
str1[i + j] = str2[j];
}
str1[i + j] = '\0'; // 添加字符串结束符
printf("拼接后的字符串为:%s\n", str1);
return 0;
}
```
运行结果同样为:拼接后的字符串为:Hello World!