问题描述:输入一行标准的c语言程序,统计其中if,while,for出现的位置.从1开始。
思考:问题比较简单,照常规的思路就行,在这因为对关键字if,for,while后面肯定都会跟()的,所以只要判断(前有这些关键字就行,这是c语言的标准语法、
c源代码:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[256];
char tmp[256];
int index=0;
gets(str);
for(int i=0;i<strlen(str);i++)
{
if(str[i] == ' ' || str[i] == '(') //判断前是不是关键字
{
tmp[index]='\0';
if(!strcmp(tmp,"if"))
{
printf("if:%d\n",i+1-2);
}
else if (!strcmp(tmp,"while"))
{
printf("while:%d\n",i+1-5);
}
else if(!strcmp(tmp,"for"))
{
printf("for:%d\n",i+1-3);
}
index=0;
}
else
{
tmp[index]=str[i];
index++;
}
}
return 0;
}
//
输出就是关键字出现的位置,包括引号,括号,空格符号也要占一个字符、