有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)

本文介绍了一种不使用库函数逆序字符串的方法,通过先逆置整个字符串,再逆置每个单词,实现字符串“studentaami”到“iamastudent”的转换。文章提供了详细的C语言代码实现,包括自定义字符串长度获取函数和逆序函数。

有一个字符数组的内容为:“student a am i”,
请你将数组的内容改为"i am a student".
要求:
不能使用库函数。
只能开辟有限个空间(空间个数和字符串的长度无关)。
提示:(先逆置整个字符串,再逆置每个单词)
student a am i
i ma a tneduts
i am a student

#include<stdio.h>
#include<Windows.h>
int MyStrlen(char *str)
{
 int count = 0;
 while (*str != 0)
 {
  count++;
  str++;
 }
 return count;
}
void reverse(char *left, char *right)
{
 char tmp;
 while (left < right)
 {
  tmp = *left;
  *left = *right;
  *right = tmp;
  left++;
  right--;
 }
}
void ReverseStr(char *str)
{
 char *left = str;
 char *right = str + MyStrlen(str) - 1;
 char *cur = str;
 reverse(left, right);//逆置字符串
 while (*cur!='\0')
 {
  char *start = cur;
  while (*cur != ' '&&*cur != '\0')
  {
   cur++;
  }
  reverse(start,cur-1);
  if (*cur == ' ')
  {
   cur++;
  }
 }
}
int main()
{
 char str[] =  "student a am i" ;
 ReverseStr(str);
 printf("%s\n", str);
 system("pause");
 return 0;
 }

使用库函数的标准做法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
void reverve_swap(char *left, char *right)
{
 assert(left != NULL); //断言不是空指针
 assert(right != NULL);
 while (left < right)
 {
  char tmp = *left;
  *left = *right;
  *right = tmp;
  left++;
  right--;
 }
}
char *reverve(char *p)
{
 int len = strlen(p);
 char *start = p;
 char *end = NULL;
 char *ret = p;
 reverve_swap(p, p + len - 1); //逆序整个字符串
 while (*p)
 {
  start = p;
  while ((*p != ' ') && (*p != '\0')) //找到一块单词
  {
   p++;
  }
  end = p - 1;
  reverve_swap(start, end);//逆序单个单词
  if (*p == ' ') //找到空格
   p++;
 }
 return ret;
}
int main()
{
 char arr[] = "student a am I";
 printf("交换前:%s\n", arr);
 printf("交换后:%s\n", reverve(arr));
 system("pause");
 return 0;
}

内容概要:本文围绕基于Wasserstein生成对抗网络(W-GAN)的光伏场景生成程序展开研究,提出了一种利用W-GAN生成高精度、高波动性光伏出力场景的方法,以应对新能源发电中的不确定性挑战。研究通过构建生成器与判别器之间的对抗训练机制,有效捕捉光伏出力的时间序列特征与统计分布规律,生成符合实际运行条件的多样化场景数据,弥补实测数据稀缺问题。相较于传统GAN,W-GAN引入Wasserstein距离作为损失函数,显著提升了模型训练的稳定性与梯度传播的连续性,增强了生成样本的质量与多样性。文中还提供了完整的Python代码实现,便于读者复现与拓展。; 适合人群:具备一定Python编程能力、深度学习基础的研究生、科研人员,以及从事新能源电力系统规划、优化调度、不确定性建模等相关领域的工程师技术人员。; 使用场景及目标:①用于电力系统中可再生能源出力的不确定性建模与风险评估;②支撑微电网、综合能源系统等场景下的随机优化、鲁棒优化与分布鲁棒优化研究;③为风光互补系统、储能配置、需求响应等应用提供高质量、多样化的输入场景;④帮助研究人员掌握深度学习在能源时序数据生成中的前沿应用,推动模型迁移至风电、负荷等其他场景生成任务。; 阅读建议:建议读者结合提供的Python代码进行动手实践,深入理解W-GAN的网络架构设计、损失函数构造、训练技巧及超参数调优策略,重点关注Wasserstein距离在缓解模式崩溃与梯度消失问题中的作用,并尝试将该框架拓展至多变量、多站点或多能源联合场景生成,提升模型的泛化能力与工程实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值