在C中使用带数组的循环 #包括 void main() { 查尔夫妇[3][50]={“保罗·凯西”、“约翰·诺拉”、“马丁·玛丽”}; 丈夫[3][50]; [3][50];; int i=0; int j=0; 出售(“丈夫:”); 对于(i=0;i
我以前创建过一个类似的程序,它运行得非常好。然而,尽管这确实成功地构建和编译了,但它并没有正确运行。从本质上讲,我试图根据空格字符将情侣分隔成一个单独的字符串。我做错了什么?试试简单的方法。在C中使用带数组的循环 #包括 void main() { 查尔夫妇[3][50]={“保罗·凯西”、“约翰·诺拉”、“马丁·玛丽”}; 丈夫[3][50]; [3][50];; int i=0; int j=0; 出售(“丈夫:”); 对于(i=0;i,c,arrays,string,loops,char,C,Arrays,String,Loops,Char,我以前创建过一个类似的程序,它运行得非常好。然而,尽管这确实成功地构建和编译了,但它并没有正确运行。从本质上讲,我试图根据空格字符将情侣分隔成一个单独的字符串。我做错了什么?试试简单的方法。sscanf()函数可以很容易地从字符串中提取数据: #include <stdio.h> void main() { char couples[3][50] = { "Paul Kathy", "John Nora", "Martin Mary" }; char hus
sscanf()
函数可以很容易地从字符串中提取数据:
#include <stdio.h>
void main()
{
char couples[3][50] = { "Paul Kathy", "John Nora", "Martin Mary" };
char husbands[3][50];
char wives[3][50];
int i = 0;
int j = 0;
puts("Husbands: ");
for (i = 0; i < 3; i++)
{
while (couples[i][j] != ' ')
{
couples[i][j] = husbands[i][j];
j++;
}
husbands[i][j] = '\0';
puts(husbands[i]);
j = 0;
}
}
#包括
内部主(空)
{
查尔夫妇[3][50]={“保罗·凯西”、“约翰·诺拉”、“马丁·玛丽”};
丈夫[3][50];
[3][50];;
int i=0;
对于(i=0;i<3;i++)
{
/*提取丈夫和妻子的名字。你知道他们之间用空格隔开*/
sscanf(夫妻[i],%s%s],丈夫[i],妻子[i]);
}
}
原始代码中的问题包括:
#include <stdio.h>
int main(void)
{
char couples[3][50] = { "Paul Kathy", "John Nora","Martin Mary" };
char husbands[3][50];
char wives[3][50];
int i = 0;
for (i = 0; i < 3; i++)
{
/* Extract husband and wife names. You know they are separated by a space. */
sscanf(couples[i], "%s %s", husbands[i], wives[i]);
}
}
您正在将
丈夫分配给夫妇
,而不是按您需要的相反方式。main
有两个有效签名:int main(void)
和int main(int,char**)
。任何文学教学都应该避免。寻找更好的学习材料,掌握C语言的基本知识就不会那么难了。“它不能正确运行”?它的作用是什么?有关什么是允许的和不允许的详细信息,请参阅。允许使用void main()
的平台数量非常少。您应该解释一下自己在做什么(并删除不应该出现在原始问题中的样板注释)。您还应该解释原始代码有什么问题-为什么不起作用。@JonathanLeffler感谢您的反馈。我已经更新了我的答案。请复习一下。
couples[i][j] = husbands[i][j];