您的位置:首页 > 其它

第六章:数组和字符串

2015-09-01 10:31 357 查看
//练习题:
//1.例如:如果用户输入了字符串"Our house is at your disposal.",
//要查找的单纯是our,则得到的字符串应该是"***house is at your disposal."而不是"***house is at y*** disposal."
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main ()
{
char ARR[100] ;     //ARR接受用户的输入
char arr[100] = {'0'} ;         //那ARR中的字符转化成小写字符存储在arr中
cout<<"输入一个字符串"<<endl;
gets(ARR);
cout<<"输入要替换的部分字符:"<<endl;
string temp;            //接受目标字符
cin>>temp;
int M = strlen (ARR);
int m = temp.length ();
for (int i = 0 ; i < M ; i++)           //全部转化成小写
{
if (ARR[i] >= 65 && ARR[i] <= 90)
arr[i] = ARR[i] + 32;
else
arr[i] = ARR[i] ;
}
for (int i = 0 ; i < m ; i++)           //目标字符也转化成小写
{
if (temp[i] >= 65 && temp[i] <= 90)
temp[i] = temp[i] + 32;
}

cout<<"替换后为:";
for (int i = 0 ; i < M ; i++)
{
if (i == 0)
{
int k = 0;
if (ARR[k + m] == ' ')  //判断匹配是否一个独立的单词
{
for ( k = 0 ; k < m ; k++)
{
if (temp[k] != arr[k])
break;
}
if (k == m)     //匹配后进行替换
{
for ( k = 0 ; k < m ; k++)
{
ARR[k] = '*' ;
}
}
}
}
else
{
if (ARR[i - 1] == ' ' && (ARR[i + m] == ' ' || ARR[i + m] == 0))    //判断匹配是否一个独立的单词
{
int k =  i;int j = 0;
for ( k = i ; k < i + m ; k++ , j++)
{
if (temp[j] != arr[k])
break;
}
if (k == ( i + m ) )        //判断是否匹配匹配后进行替换
{
for ( k = i ; k < i + m ; k++)
{
ARR[k] = '*' ;
}
}
}
}
}
cout<<ARR<<endl;

system ("pause");

}
/////////////////////////////////////////////////////////////////////////////////////////////
//   2.编写一个程序,提示输入两个字符串,在测试它们,看看其中一个
//是否为另一个字符串颠倒字母顺序而得到的
/*
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string arr1 ;
string arr2 ;
cout<<"输入第一个字符串:"<<endl;
cin>>arr1;
cout<<"输入第二个字符串:"<<endl;
cin>>arr2;
int i = arr1.length () - 1;
int j = arr2.length () - 1;
if (i == j)
{
int k = 0;
for (k ; k <= j  ; k++ , i--)
{
if (arr1[i] != arr2[k])
break;
}
if (i == -1)
cout<<"第二次输入的是第一个字符串的逆序存放"<<endl;
else
cout<<"第二次输入的不是第一个字符串的逆序存放"<<endl;
}
else
cout<<"第二次输入的不是第一个字符串的逆序存放"<<endl;

system ("pause");

}
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: