我有一个家庭作业问题,要求我将用户输入的单词转换为Pig Latin,方法是将单词的第一个字母移到最后并添加一个ay。例如,星期二成为uesdayTay。应重复此过程,直到用户键入STOP。
我对数组很新,所以我可能错误地使用它们,但我找不到原因。我编写的程序可以编译,但每次执行时都会崩溃。我确信这个程序很简单,但这是我的代码:
{
"id": "someString",
"servers": [{
"name": "ServerName",
"bases": [{
"name": "Base 1",
"status": true
}]
}]
}
任何人都可以帮帮我吗?我发现阵列相当混乱。谢谢!
答案 0 :(得分:1)
scanf("%s", input_word[n])
我会阻止你在那里。
您将input_word声明为指针数组,但这些指针是1.未初始化2.未指向您需要分配的有效内存。
而是首先声明一个数组来保存来自用户的输入
char input_word[100];
现在为了简单起见,使用fgets从命令行中读取
fgets(input_word, sizeof(input_word), stdin);
现在删除尾随\ n,如果有的话
char* p = strchr(input_word, '\n');
if (p)
{
*p = '\0';
}
现在你在input_word
中有“Tuesday \ 0”(如果你输入了那个词)为新单词添加另一个数组
char output_word[100] = { '\0' };
略过第一个字符并复制到字符串结尾
strcpy(output_word, input_word + 1);
现在取第一个字符并添加
strncat(output_word, input_word, 1);
然后使用strcat
添加其余部分并使用像输入的字符串长度等支票撒上代码