这里我改变了我的代码,我的主要问题是如何在键入3个数字时找到标记...
我应该输入学校科目和3分,并且应该计算我的最终分数(例如数学3 3 4程序应该在数学中写出最终分数为3(当计算它为3.33因此分数为3))。它被放置在字符串s1 [30]中。我的想法是基于空白区域将字符串分离到部件,但是当测试程序时,它会打印出NULL而不是主题......任何想法哪里出错?#include <stdio.h>
#include <string.h>
void kopiranje(char *s,char *s2,char *s3)
{
int i;
char *ocena;
for( i=0;i<strlen(s);i++)
{
*(s2+i)=*(s+i);
if (*(s2+i)== ' ' ) *(s2+i)='\0';
}
}
int main ()
{
char s[30],s2[30],s3[30];
char *ocena;
printf("\nUnesi predmet i ocene:\n");
printf("======================================\n");
gets(s);
kopiranje(s,s2,s3);
printf("======================================");
printf("\nZakljucna ocena iz predmeta %s je %s",s2);
}
答案 0 :(得分:1)
最好使用函数strtok
在标记中拆分字符串。而不是gets
,使用fgets
关于循环
for(int i=0;i<strlen(s1);i++)
{
if((s1[i]==' ')&&(s1[i]=!"\0")) predmet=s1[i];
}
然后它不会被编译,因为有一个拼写错误,必须!= 而不是 =!,它没有任何意义。你将''存储在预先安装中。
顺便说一句,如果没有参数,C中的函数main应定义为int main( void )
。