我无法获得基于读取字符数组的算法来工作
I can't get an algorithm based on reading a character array to work
我需要将输入的字符数组转换为所有小写。读数停止在"."字符处。我必须这样做,不使用字符串变量或库内的任何函数。
#include <iostream>
using namespace std;
int main(){
char s[200], *p=s;
cin.getline(s, 200, '.');
while(p){
if('a' <= *p && *p <= 'z') *p += 'A'-'a';
p++;
}
cout << s;
}
该算法应该检查数组中的每个字符,直到它遇到空指针。对于每个字符,它应该检查它是否是小写字符。如果是,它会将其更改为大写字母(通过减少"a",它会记住字母表的第一个字母和它所指的字母之间的差异,通过增加"A",它将该差异添加到大写字母表的第一个字母上,可以这么说,从而获得字母的大写版本)。
我不知道我的错误在哪里,但是当我尝试运行它时,我的编译器崩溃了。
while (p)
应该是
while (*p)
如果要在 null 终止符上停止,则需要取消引用指针,否则将测试指针是否不为 null。
旁注:您可能会发现std::tolower
功能很有帮助。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符