c语言将字符串扩大n倍的函数(例如字符串p=‘abc’,怎么做让他*3后变成‘abcabcabc’)
时间: 2024-10-23 10:14:37 浏览: 24
在C语言中,没有直接的内置函数可以直接让你的字符串自动重复若干次。但是,你可以通过动态内存分配和循环复制的方式来实现这个功能。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc和free函数
void duplicate_string(char *dest, const char *src, int repeat) {
if (src == NULL || *src == '\0') { // 检查输入是否为空
printf("Error: Source string is empty.\n");
return;
}
int len = strlen(src); // 获取源字符串长度
for (int i = 0; i < repeat; i++) {
for (int j = 0; j < len; j++) {
dest[i * len + j] = src[j]; // 复制源字符串到目标字符串
}
dest += len; // 移动目标字符串指针
}
dest[len - 1] = '\0'; // 添加终止符防止溢出
// 如果需要释放原始空间,记得添加以下这行
// free(dest);
}
int main() {
char p[] = "abc"; // 定义原始字符串
int n = 3; // 扩大n倍
char expanded[strlen(p) * n]; // 动态分配新字符串的空间
duplicate_string(expanded, p, n);
printf("Expanded string: %s\n", expanded);
//
阅读全文