gpt4 book ai didi

从数组中复制字符

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:32 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来指定数组的内容,以替换特殊字符(输入、制表符)它们在 ASCII 代码中的对应项。当声明数组 s 不正确时会出现问题:

#include <stdio.h>
#include <stdlib.h>

void escape(char [], char []);

int main()
{
int k,j;
k=j=0;
char s[]="klks\nsgs \t";
while(s[k]!=EOF)
k++;
char t[k];
escape(s, t);
while(j!=EOF)
{
printf("%d", t[j]);
j++;
}
}

void escape(char s[], char t[])
{
int i;
for(i=0;i!=EOF;i++)
{
switch(s[i])
{
case '\n':
t[i]="\\";
i++;
t[i]="n";
break;
case '\t':
t[i]="\\";
i++;
t[i]="t";
break;
default:
t[i]=s[i];
}
}
}

最佳答案

我能够找到的问题:

  1. 您正在测试 EOF 而不是 '\0' 以找到字符串的结尾。

  2. 您没有为 t 数组分配足够的空间。现在,它与 s 数组的长度相同,但您需要更长的时间以容纳额外的转义字符。

  3. 您正在将字符串(例如 "\\""n")分配给 中的 char >转义。请改用 '\\''n'

  4. 您在转义中对 st 使用相同的索引,导致您在 s 中跳过字符转义一个角色。您需要分别跟踪st的当前索引。

  5. 您正在使用 for 循环来检查 i 是否符合 escape 中的 EOF。您应该使用 while 循环来检查 s[i]'\0'

  6. 永远不要终止字符串 t

错误太多...正在中止...

关于从数组中复制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com