第六章:数组和字符串
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"); } */
相关文章推荐
- flash脚本as3的位运算符
- 解决ftp客户端 建立数据socket 失败问题
- 关于memset函数
- HDU 3577 Fast Arrangement(线段树功能:区间更新,查询区间的最大覆盖次数)
- android 4.4 监听USB连接状态
- 字符数组与字符指针
- 常见的正则验证
- Nginx RTMP 流媒体直播
- Android NDK学习 <六> 复杂结构动态库处理和第三方库的移植
- 面试知识储备_操作系统:处理机调度与死锁
- SVN添加分支
- JS 多种变量定义
- 批量更改数据库指定字段类型
- Android 自定义View (三) 圆环交替 等待效果
- CSS3实现银灰色动画效果的导航菜单代码
- Spring-IOC简单原理 + 实现
- UIday0701:UIScrollView的属性和用法
- PHP 第一阶段 html(1)
- rails小记1
- Andriod 设计模式之工厂模式 Factory