我是一个试图学习调用strings
的新手。所以这是我写的一个程序,我正在尝试实现一个程序,每行显示一个名称的所有字符。该程序成功编译,但在输入名称后,程序崩溃。谁能告诉我我做错了什么?非常感谢!
#include <stdio.h>
#include <string.h>
int main(void)
{
char s;
printf("Enter name\n");
scanf("%c", s);
int i;
for( i = 0; i < strlen(s); i++);
printf("%c, s[i]");
return 0;
}
答案 0 :(得分:0)
有很多问题:
你想要这个:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[100]; // array of 100 chars
printf("Enter name\n");
scanf("%s", s); // read name from user into s array
int i;
for (i = 0; i < strlen(s); i++)
printf("%c", s[i]);
return 0;
}
高级主题:
这一行:
for (i = 0; i < strlen(s); i++)
虽然正确,但效率低下。
以下代码更好:
int len = strlen(s);
for (i = 0; i < len; i++)
找出原因留给读者作为练习。
答案 1 :(得分:0)
您的计划中有几个问题。首先,您只为单个.Filter(factory => factory.Add(model=> model.SubscriptionValidStatus).IsEqualTo("Aktiv"))
分配了内存,但是您希望在其中存储一个名称(由多个char
组成)。
此外,您有多个语法错误,例如for循环后的chars
和;
调用中放错的"
。
如果我理解正确你正在寻找这样的东西:
printf
答案 2 :(得分:0)
一种方法,在评论中有解释:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[] = {"\0"}; //s should be a char array type, it needs explicit size or initialization
printf("Enter name\n");
scanf("%s", s); //format specifier must match data type
int len = strlen(s);
for( int i = 0; i < len; i++)
printf("%c\n", s[i]);//format specifier must match data type
return 0;
}
希望这可以提供帮助。