gpt4 book ai didi

无法弄清楚为什么 strcpy 不能有效地复制字符串?

转载 作者:行者123 更新时间:2023-11-30 15:31:38 26 4
gpt4 key购买 nike

我正在尝试构建一个程序,让用户以“01'14'2013”​​格式输入日期,并将其输出为“2013 年 1 月 14 日”格式。我正在尝试将保存用户输入的字符串复制到不同的字符串上,稍后将其连接到原始字符串上,而无需字符串的第一个和第二个索引,这样我只有“/14/2013”​​,来自原始字符串,然后用“”替换“/”,以便它读取月、日和年......但由于某种原因,当我尝试将原始字符串从输入复制到另一个字符串(我计划稍后连接),它不能有效复制,我是否遗漏了一些东西..?

#include <stdio.h>
#include <string.h>


int main()
{

char date[100];


char month[100];
char array[12][100] ={"January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
char month2[100];

printf(" Please enter a date ");
fgets( date, 100, stdin);

strcpy(month2, month);

if( date[0] == '0' && date[1] == '1')
{
strcpy(month, array[0]);
}
else if( date[0] =='0' && date[1] == '2')
{
strcpy(month, array[1]);
}
else if( date[0] =='0' && date[1] == '3')
{
strcpy(month, array[2]);
}
else if( date[0] =='0' && date[1] == '4')
{
strcpy(month, array[3]);
}
else if( date[0] =='0' && date[1] == '5')
{
strcpy(month, array[4]);
}
else if( date[0] == '0' && date[1] == '6')
{
strcpy(month, array[5]);
}
else if( date[0] =='0' && date[1] == '7')
{
strcpy(month, array[6]);
}
else if( date[0] =='0' && date[1] == '8')
{
strcpy(month, array[7]);
}
else if( date[0] =='0' && date[1] == '9')
{
strcpy(month, array[8]);
}
else if( date[0] =='1' && date[1] == '0')
{
strcpy(month, array[9]);
}
else if( date[0] =='1' && date[1] == '1')
{
strcpy(month, array[10]);
}
else if( date[0] =='1' && date[1] == '2')
{
strcpy(month, array[11]);
}









printf("%s \n", month);
printf("%s \n", month2);
return 0;

}

最佳答案

strcpy(month2, month); 

此时,monthmonth2 都尚未初始化为任何有用的内容。它们的内容是不确定的,并且使用正确终止的 C 字符串以外的其他内容调用 strcpy 会调用未定义的行为。

对我来说看起来像是一个错字。

关于无法弄清楚为什么 strcpy 不能有效地复制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637272/

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