大哥大姐,帮忙看一下嘛,小弟我实在不知道,(统计x出现的次数,很少一段代码,帮小弟我看一下错在那里?)
大哥大姐,帮忙看一下嘛,我实在不知道,(统计x出现的次数,很少一段代码,帮我看一下错在那里?)
#include <stdio.h>
#include <string.h>
void main()
{
int i,mark;
char str[30];
printf( "请您输入要统计的字符串: ");
gets(str);
for(i=0;i <strlen(str);i++)
if(str[i]== 'x ')
mark++;
printf( "x出现的次数为:%d ",mark);
}
统计不出来是怎么回事?
------解决方案--------------------
mark 没初始化
------解决方案--------------------
int i,mark = 0;
mark 变量至少要赋一个初值啊, 这个是编程习惯
------解决方案--------------------
mark=0;
------解决方案--------------------
while(str[i]!= '\0 ')
{
if(str[i]== 'x ' || str[i]== 'X ')
{
mark++;
}
i++;
}
------解决方案--------------------
咋个不出啊?
记得这个是控制台程序啊 要在cmd中运行
------解决方案--------------------
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(char *argv, int argc)
{
char s[100];
printf( "请输入一段字符串\n ");
scanf( "%s ",&s);
int count = 0;
for(int i=0;i <strlen(s);i++)
{
if(s[i] == 'x ')
count++;
}
printf( "%d ",count);
getchar();
getchar();
return 0;
}
------解决方案--------------------
gets(str);
输入肯定不对了
------解决方案--------------------
#include <stdio.h>
void main()
{
int i=0,mark=0;
char str[30];
printf( "请您输入要统计的字符串: ");
gets(str);
puts(str);
while(str[i]!= '\0 ')
if(str[i]== 'x ' || str[i]== 'X ')
{
mark++;
i++;
}
printf( "x出现的次数为:%d ",mark);
}
我尝试了一下,改成这样结果是可以的了。
------解决方案--------------------
将int i,mark;
改成
int i,mark = 0;
------解决方案--------------------
#include "stdio.h "
#include "string.h "
int searchKeyInStr(char *searchStr, char *searchKey);
int main()
{
int mark=0;
char searchStr[30];
char searchKey[30];
printf( "Enter Search String : ");
fgets(searchStr,sizeof(searchStr),stdin);
searchStr[strlen(searchStr) -1] = '\0 ';
printf( "Enter Search Key: ");
fgets(searchKey, sizeof(searchKey), stdin);
searchKey[strlen(searchKey) -1] = '\0 ';
mark = searchKeyInStr(searchStr, searchKey);
printf( "found %d times\n ",mark);
return 0;
}
#if 1
int searchKeyInStr(char *searchStr, char *searchKey)
{
int index = 0;
int count = 0;
char *pIndex;
for(;;)
{
pIndex = strstr(searchStr + index, searchKey);
if(pIndex != NULL)
{
index = (int)(pIndex - searchStr + 1);
count++;
#include <stdio.h>
#include <string.h>
void main()
{
int i,mark;
char str[30];
printf( "请您输入要统计的字符串: ");
gets(str);
for(i=0;i <strlen(str);i++)
if(str[i]== 'x ')
mark++;
printf( "x出现的次数为:%d ",mark);
}
统计不出来是怎么回事?
------解决方案--------------------
mark 没初始化
------解决方案--------------------
int i,mark = 0;
mark 变量至少要赋一个初值啊, 这个是编程习惯
------解决方案--------------------
mark=0;
------解决方案--------------------
while(str[i]!= '\0 ')
{
if(str[i]== 'x ' || str[i]== 'X ')
{
mark++;
}
i++;
}
------解决方案--------------------
咋个不出啊?
记得这个是控制台程序啊 要在cmd中运行
------解决方案--------------------
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(char *argv, int argc)
{
char s[100];
printf( "请输入一段字符串\n ");
scanf( "%s ",&s);
int count = 0;
for(int i=0;i <strlen(s);i++)
{
if(s[i] == 'x ')
count++;
}
printf( "%d ",count);
getchar();
getchar();
return 0;
}
------解决方案--------------------
gets(str);
输入肯定不对了
------解决方案--------------------
#include <stdio.h>
void main()
{
int i=0,mark=0;
char str[30];
printf( "请您输入要统计的字符串: ");
gets(str);
puts(str);
while(str[i]!= '\0 ')
if(str[i]== 'x ' || str[i]== 'X ')
{
mark++;
i++;
}
printf( "x出现的次数为:%d ",mark);
}
我尝试了一下,改成这样结果是可以的了。
------解决方案--------------------
将int i,mark;
改成
int i,mark = 0;
------解决方案--------------------
#include "stdio.h "
#include "string.h "
int searchKeyInStr(char *searchStr, char *searchKey);
int main()
{
int mark=0;
char searchStr[30];
char searchKey[30];
printf( "Enter Search String : ");
fgets(searchStr,sizeof(searchStr),stdin);
searchStr[strlen(searchStr) -1] = '\0 ';
printf( "Enter Search Key: ");
fgets(searchKey, sizeof(searchKey), stdin);
searchKey[strlen(searchKey) -1] = '\0 ';
mark = searchKeyInStr(searchStr, searchKey);
printf( "found %d times\n ",mark);
return 0;
}
#if 1
int searchKeyInStr(char *searchStr, char *searchKey)
{
int index = 0;
int count = 0;
char *pIndex;
for(;;)
{
pIndex = strstr(searchStr + index, searchKey);
if(pIndex != NULL)
{
index = (int)(pIndex - searchStr + 1);
count++;