[quote=引用 5 楼 xiaohuh421的回复:]估计楼主是没有明白strlen是做什么用的. strlen 按字面意思 str 就是字符串string的缩写 len就是长度length的缩写. 如它的字面意思一样, 它就是 求字符串长度的. 它是从你传的地址开始, 查找\0 也就是0作为结束, 它不会管你越不越界什么的. 反正就是从你给它的地址开始往后面找, 如果你的内存中每一个字节都不为0, 那么它就会告诉你字符串长度有几个G.
会影响的char* 字符串长度指的是当前指针位置起到\n结束符止,s++会导致指针偏移。
void inv (char *s) { int i; for (i = 0; i < strlen(s); i++) { if (isupper(s[i])) s[i] += 32; } } 记着加一下isupper()的头文件。
void inv (char *s) { int i; for (i = 0; i < strlen(s); i++) { if (isupper(s[i])) s[i] += 32; } }
估计楼主是没有明白strlen是做什么用的. strlen 按字面意思 str 就是字符串string的缩写 len就是长度length的缩写. 如它的字面意思一样, 它就是 求字符串长度的. 它是从你传的地址开始, 查找\0 也就是0作为结束, 它不会管你越不越界什么的. 反正就是从你给它的地址开始往后面找, 如果你的内存中每一个字节都不为0, 那么它就会告诉你字符串长度有几个G.
70,021
社区成员
243,263
社区内容
加载中
试试用AI创作助手写篇文章吧