试题 基础练习 FJ的字符串C语言

问题描述

  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?

输入格式

  仅有一个数:N ≤ 26。

输出格式

  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

样例输入

3

样例输出

ABACABA

本题算法思路:用两个数组。一开始并没有想明白它数组需要存放多大,只知道字母间对称。看到 基础练习 FJ的字符串-CSDN博客博主文章里第一张图瞬间一目了然

后面直接运用到了两个字符串的函数:

1,sprintf是一个C语言中的函数,用于将格式化的数据写入字符串中。

以下为sprintf运用代码示例:

#include <stdio.h>

int main() {
    char str[100];
    int num = 123;
    float f = 3.14;

    sprintf(str, "数字为 %d 浮点数为 %.2f", num, f);
    printf("%s\n", str);

    return 0;
}

输出结果为:数字为 123  浮点数为 3.14

2,strcpy是一个C语言中的函数,用于将一个字符串复制到另一个字符串中。

        它的原型如下:

char *strcpy(char *dest, const char *src);

其中,dest是目标字符串的指针,src是源字符串的指针。

完整代码

#include<stdio.h>
#include<string.h>
//等比数列 ,2^0 + 2^1... 
char str[67108864],str1[67108864];//str用于添加字母 
int main(){
	int i;
	int n;
	scanf("%d",&n);
	str1[0] = '\0';
	//字符串与字符的拼接 ,单个字符 c 
	for(i = 0;i < n;i++){
		sprintf(str,"%s%c%s",str1,'A' + i,str1);
		//将str字符串复制给str1 (覆盖) 
		strcpy(str1,str);
	}
	printf("%s",str);
	
	return 0;
	
}

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值