首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这个有关问题如何解决。

2012-05-23 
这个问题怎么解决。。。各位老师,我不想让字符串最后出现空格。#includeiostream#includestringusing name

这个问题怎么解决。。。

各位老师,我不想让字符串最后出现空格。


#include<iostream>
#include<string>
using namespace std;

int main()
{

  string s="names name nam name ";//求单词name在字符串中的个数,字符串最后不加空格就不能比较最后一个单词
  int w=s.length();
  int k,m=0,j=0,t=0;
  char b[20]="name";
  int n=strlen(b);
  char a[20];
  for(int i=0;i<w;i++)
  {
 
  if(s[i]!=' ')
  {
  a[j]=s[i];  
  j++;

  }
  else
  {
  for(k=0;k<j;k++)
  {
if(a[k]==b[k])
m++;
else
{
m=0;
break;
}
}
  if(m==n) t++;
m=0;
  j=0;
  }
  }
  cout<<t<<endl;//问题在于最后一个单词<w,直接跳出for 循环,没有比较最后一个单词。

  return 0;
}

[解决办法]
#include <iostream>
#include <string>
#include <cstring>
using namespace std;

int main()
{
string s="names name nam name";
int w=s.length();
int k,m=0,j=0,t=0; 
char b[20]="name";
int n=strlen(b);
char a[20];
for(int i = 0;i < w;i++)
{
if(s[i] == ' ' || i == w-1)
{
if (i == w-1) {
a[j] = s[i];
j++;
}
for(k=0;k<j;k++)
{
if(a[k]==b[k])
m++;
else
{
m=0;
break;
}
 }
if(m==n) t++;
 m=0;
j=0;
}
else
{
a[j]=s[i];
j++;
}
}
cout<< t <<endl;
return 0;
}
[解决办法]

C/C++ code
for(int i=0;i<=w;i++) //j<=w    {                if(i != w && s[i]!=' ')  //再添加个条件判断最后一个单词完成        {            a[j]=s[i];               j++;                    } 

热点排行