C语言,将字符串中的数字字符倒置,即‘9’变‘1’,‘8’变‘2’
时间: 2023-07-02 16:09:31 浏览: 168
可以使用C语言中的字符串处理函数以及循环结构来实现这一功能,具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 判断是否为数字字符
str[i] = '9' - (str[i] - '0') + '1'; // 计算倒置后的字符并替换原字符
}
}
printf("倒置后的字符串为:%s", str);
return 0;
}
```
在这段代码中,我们首先使用`fgets()`函数从标准输入中读取一个字符串,并使用`strlen()`函数获取字符串的长度。接下来,我们使用一个`for`循环遍历字符串中的每一个字符,判断其是否为数字字符。如果是数字字符,则使用数学公式将其倒置,并使用赋值语句将其替换原字符。最后,我们使用`printf()`函数输出倒置后的字符串。
需要注意的是,在输入字符串时,我们使用了`fgets()`函数而不是`scanf()`函数,这是因为`fgets()`函数可以读取包含空格的字符串,而`scanf()`函数会在遇到空格时停止读取。
相关问题
使用c语言将字符串中的数字字符倒置
下面是使用C语言将字符串中的数字字符倒置的示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_digits(char *str) {
char *start = str;
char *end = str + strlen(str) - 1;
while (start < end) {
// 找到第一个数字字符
while (*start < '0' || *start > '9') {
start++;
}
// 找到最后一个数字字符
while (*end < '0' || *end > '9') {
end--;
}
// 交换数字字符
char tmp = *start;
*start++ = *end;
*end-- = tmp;
}
}
int main() {
char str[] = "a1b2c3d4e5f6";
printf("原始字符串:%s\n", str);
reverse_digits(str);
printf("倒置数字字符后字符串:%s\n", str);
return 0;
}
```
运行结果:
```
原始字符串:a1b2c3d4e5f6
倒置数字字符后字符串:a6b5c4d3e2f1
```
用C语言将字符串中的数字字符倒置
以下是用C语言实现将字符串中的数字字符倒置的代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
int len, i, j;
gets(str); // 输入字符串
len = strlen(str); // 获取字符串长度
// 将字符串中的数字字符倒置
for (i = 0, j = len - 1; i < j; i++, j--) {
while (!isdigit(str[i]) && i < j) i++; // 找到第一个数字字符
while (!isdigit(str[j]) && i < j) j--; // 找到最后一个数字字符
if (isdigit(str[i]) && isdigit(str[j])) { // 如果都是数字字符,则交换它们
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
printf("倒置后的字符串为:%s", str); // 输出倒置后的字符串
return 0;
}
```
注意,上述代码中使用了 `gets()` 函数来获取输入的字符串,但是 `gets()` 函数存在安全问题,建议使用更安全的 `fgets()` 函数来获取输入的字符串。
阅读全文