c语言字符串加密小程序,C语言小程序之ABA字符串

9a38271627d3

图片发自简书App

题目

FJ在沙盘上写了这样一些字符串:

A1 = "A"

A2 = "ABA"

A3 = "ABACABA"

A4 = "ABACABADABACABA"

… …

你能找出其中的规律并写所有的数列AN吗?

分析

n的值

1 字母1个

2 字母2个

3 字母3个

4 字母4个

新的字符串

旧的字符串+新字母+串符字的旧

字符串长度

l(n) = 2*l(n-1)+1

代码

#include

#include

char *getString(int n)

{

// 初始化旧字符串

int oldLength = 1;

char *oldStr = malloc(sizeof(char)*oldLength+1);

oldStr[0] = 'A';

oldStr[1] = '\0';

// n为1直接返回

if(n<=1)

return oldStr;

else

{

// 定义新的字符串

char *newStr;

int newLength;

for(int i=1; i

{

// 申请内存

newLength = 2*oldLength+1;

newStr = malloc(sizeof(char)*newLength+1);

// 循环赋值

for(int j=0; j

{

newStr[j] = oldStr[j];

newStr[newLength-j-1] = oldStr[j];

}

// 新字母并结尾

newStr[oldLength] = 'A'+i;

newStr[newLength] = '\0';

// 释放旧内存

free(oldStr);

// 指向新内存

oldStr = newStr;

oldLength = newLength;

// 指向NULL

newStr = NULL;

}

// 返回字符串

return oldStr;

}

}

int main()

{

int length = 1;

scanf("%d", &length);

char *str = getString(length);

printf("%s\n", str);

free(str);

return 0;

}

9a38271627d3

图片发自简书App

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值