【发布时间】:2019-07-01 05:27:47
【问题描述】:
我正在尝试创建一个映射,在该映射中我比较 5 个字符并将它们与一个大小写匹配。我的问题是 char 数组的语法,也许有一种更简单的方法来提取子数组。
我的总体思路是:
char str[80];
char tempStr[5]="";
int i=0;
for(i=0; i<4; i++){
strcat(tempStr,str[i]);
}
// match tempStr to cases
// go back to loop through for the next tempStr
示例输入:
"Iliveon123streetUnitedStatesOfAmericaSSS"
每次循环我都想提取一个子数组
"Ilive"
"on123"
"stree"
"tUnit"
"edSta"
"tesOf"
"Ameri"
"caSSS"
并比较这个临时字符串
【问题讨论】:
-
你读过
strcat的文档吗?它复制一个字符串(在 C 中通常以 null 结尾),而不是一个字符。为什么要循环 [0,4) - 只有 4 个元素的范围? -
关于:
char tempStr[5]="";这对于 5 个字符加上尾随的 NUL 字符来说不够大 -
循环仅提取 4 个字符,但所需的输出显示提取 5 个字符