c语言用函数输出字符 输出以下结果,用函数调用实现 ****************** How do you do! ******************
时间: 2023-12-04 18:41:16 浏览: 36
以下是用C语言函数实现输出字符的代码,其中使用了自定义函数printLine()和printString()来输出星号和字符串。
```c
#include <stdio.h>
void printLine(int n) { // 自定义函数printLine(),用于输出n个星号
int i;
for (i = 0; i < n; i++) {
printf("*");
}
printf("\n");
}
void printString(char *str) { // 自定义函数printString(),用于输出字符串
printf(" %s\n", str);
}
int main() {
int c = 18; // 每行星号数量
int r = 3; // 行数
printLine(c); // 输出第一行星号
printString("How do you do!"); // 输出字符串
printLine(c); // 输出最后一行星号
return 0;
}
```
相关问题
c语言用函数输出字符 输出以下结果,用函数调用实现 ****************** How do you do! ******************
以下是用C语言函数调用实现输出字符的代码:
```c
#include <stdio.h>
void printLine(int n, char c) { // 定义函数printLine,参数为n和c
for (int i = 0; i < n; i++) { // 循环n次
printf("%c", c); // 输出字符c
}
printf("\n"); // 输出换行符
}
int main() {
int n = 18; // 定义n为18
char c = '*'; // 定义c为*
printLine(n, c); // 调用函数printLine,输出18个*
printf("How do you do!\n"); // 输出How do you do!
printLine(n, c); // 调用函数printLine,输出18个*
return 0;
}
```
输出结果为:
```
******************
How do you do!
******************
```
一个字符串每隔两位插入一个*用c语言写
### 回答1:
以下是一个用 C 语言实现的每隔两位插入 * 的函数:
```c
#include <stdio.h>
#include <string.h>
void insert_star(char *str) {
int len = strlen(str);
int i;
for (i = 2; i < len; i += 3) {
memmove(str + i + 1, str + i, len - i);
str[i] = '*';
len++;
}
}
int main() {
char str[] = "1234567890";
insert_star(str);
printf("%s\n", str);
return 0;
}
```
这个函数的思路是,从第三个字符开始,每隔两个字符插入一个 *,并且将后面的字符都往后移动一位。需要注意的是,每插入一个 *,字符串的长度会增加一位,因此需要在循环中更新字符串的长度。
### 回答2:
可以使用C语言编写一个函数,接受一个字符串作为参数,在每隔两位插入一个*,然后返回新的字符串。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* insertStar(const char* str) {
int len = strlen(str);
char* newStr = (char*)malloc(sizeof(char) * (len*2 + 1)); // 分配足够的空间存储新字符串(每隔两位插入1个*)
int index = 0;
for (int i = 0; i < len; ++i) {
newStr[index++] = str[i]; // 拷贝原字符串的字符
if (i % 2 == 1 && i != len - 1) {
newStr[index++] = '*'; // 每隔两位插入一个*
}
}
newStr[index] = '\0'; // 添加字符串结束符
return newStr;
}
int main() {
char str[] = "abcdefghi";
char* newStr = insertStar(str);
printf("%s\n", newStr);
free(newStr); // 记得释放内存
return 0;
}
```
输出结果为:"ab*c*de*f*gh*i"。
### 回答3:
```c
#include <stdio.h>
void insertStar(char* str) {
char newStr[600]; // 创建一个新的字符串,用于存放原字符串和插入的*
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++, j++) {
newStr[j] = str[i]; // 将原字符串的字符复制到新的字符串中
if (i % 2 == 1) {
j++; // 跳过插入的位置,j的值+1
newStr[j] = '*'; // 在新字符串的插入位置插入*
}
}
newStr[j] = '\0'; // 在新字符串的末尾加入字符串结束符
printf("插入*后的字符串为:%s\n", newStr);
}
int main() {
char str[300]; // 声明一个字符串,用于存放输入的数据
printf("请输入待插入*的字符串:");
scanf("%s", str); // 从控制台获取输入的字符串
insertStar(str); // 调用函数插入*
return 0;
}
```
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)