通过字符串计数标记

时间:2014-02-09 12:07:10

标签: c++ string

这里我改变了我的代码,我的主要问题是如何在键入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);

}

1 个答案:

答案 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 )