c语言从键盘输入任意串s(最多30个字符),将串s每三个字符加一个* 复制到t串中,若s串为"ABCDEFGHIJK",生成t串为"ABCDEFGHI*JK"
时间: 2024-02-19 08:20:09 浏览: 69
以下是一个使用 C 语言实现将字符串 `s` 每三个字符加一个星号的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 31
int main() {
char s[MAX_LENGTH];
char t[MAX_LENGTH*2]; // 假设 t 的最大长度是 s 的两倍
printf("请输入一个最多30个字符的字符串:");
fgets(s, sizeof(s), stdin);
int len = strlen(s);
int index = 0;
for (int i = 0; i < len; i++) {
if ((i + 1) % 3 == 0 && i != len - 1) {
t[index++] = s[i];
t[index++] = '*';
} else {
t[index++] = s[i];
}
}
t[index] = '\0'; // 在 t 的末尾添加字符串结束符
printf("生成的 t 串为:%s\n", t);
return 0;
}
```
在这个示例中,我们使用 `fgets` 函数从键盘输入一个字符串,并将其存储在字符数组 `s` 中。然后,我们使用循环遍历 `s` 中的字符,每三个字符后面加入一个星号,并将结果存储在字符数组 `t` 中。最后,我们在 `t` 的末尾添加了字符串结束符,并打印出生成的 `t` 串。
请注意,为了确保 `t` 的大小足够容纳最终的串,我们将 `t` 定义为 `MAX_LENGTH*2` 的字符数组。
希望这个示例对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文