请编写函数void fun(char *t,char *s), 它的功能是:将字符串t中的每个字符各复制一次,最后结果存入字符串s中。 如t字符串为abcd12,s字符串为aabbccdd1122 在主函数中完成字符串的输入及输出。C语言
时间: 2024-03-06 07:49:35 浏览: 139
函数代码如下:
```c
void fun(char *t, char *s) {
while (*t != '\0') {
*s++ = *t;
*s++ = *t++;
}
*s = '\0';
}
```
主函数代码如下:
```c
#include <stdio.h>
void fun(char *t, char *s);
int main() {
char t[100], s[200];
printf("请输入字符串t:");
gets(t);
fun(t, s);
printf("复制后的字符串s为:%s\n", s);
return 0;
}
```
注意,上面的代码中使用了`gets()`函数读入字符串,但是该函数存在安全隐患,建议使用更安全的函数`fgets()`来代替。
相关问题
编写函数void fun(char *s ,char *t),将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指字符数组中。用c语言编写且有主函数
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s, char *t) {
int i, j = 0;
for (i = 0; s[i] != '\0'; i++) {
if (i % 2 == 0 || s[i] % 2 == 0) {
t[j++] = s[i];
}
}
t[j] = '\0';
}
int main() {
char s[100], t[100];
printf("请输入字符串s:");
scanf("%s", s);
fun(s, t);
printf("处理后的字符串t为:%s\n", t);
return 0;
}
```
函数 `fun()` 接受两个参数,分别是源字符串 `s` 和目标字符串 `t`。函数中使用循环遍历源字符串中的每个字符,如果该字符位于奇数位置或其 ASCII 码为偶数,则将其添加到目标字符串中。最后,将目标字符串末尾的字符设为 '\0',以标记字符串的结束。
在 `main()` 函数中,首先输入源字符串 `s`,然后调用 `fun()` 函数进行处理,将结果存储在目标字符串 `t` 中,并输出由 `fun()` 处理后的字符串 `t`。
c++编写函数 void fun(char *a),该函数实现的功能是:将字符串a 中除前导和尾部连续的*之外,其余的*全部删除。说明:不得使用系统提供的字符串函数。
可以使用双指针的方式来实现该功能。具体思路如下:
1. 首先判断字符串的长度是否为0,如果是,则直接返回。
2. 使用两个指针i和j,分别指向字符串的头部和尾部。
3. 从头部开始,向尾部移动指针i,直到指向第一个不是*的字符为止。
4. 从尾部开始,向头部移动指针j,直到指向第一个不是*的字符为止。
5. 然后再从指针i所指向的字符开始,遍历到指针j所指向的字符结束,如果遍历到的字符是*,则将其删除。
下面是具体的代码实现:
```c++
void fun(char *a) {
int len = strlen(a);
if (len == 0) {
return;
}
int i = 0, j = len - 1;
while (i < len && a[i] == '*') {
i++;
}
while (j >= 0 && a[j] == '*') {
j--;
}
for (int k = i; k <= j; k++) {
if (a[k] == '*') {
for (int l = k; l < j; l++) {
a[l] = a[l + 1];
}
a[j] = '\0';
j--;
k--;
}
}
}
```
阅读全文
相关推荐















