|
发表于 2019-5-14 15:28:39
|
显示全部楼层
本帖最后由 jackz007 于 2019-5-14 15:35 编辑
只要用这个代码做一下测试,你就会知道,其实你的操作早就超出了字符串的长度范围,最终是因为到达数组边界才不得不停止循环的。
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main ()
- {
- char str[10] ;
- scanf("%s",str) ;
- int c = 0 , i , m ;
- m = strlen(str) ;
- for(i = 0 ; i != '\n'; i ++) {
- if(str[i] >= 65 && str[i] <= 90)
- str[i] += 32 ;
- c ++ ;
- }
- printf("%s\n", str) ;
- printf("c = %d , strlen(s) = %d\n" , c , m) ;
- return 0;
- }
复制代码
这是在我这里的运行情况:
C:\Bin\00.Example\C>g++ -o test test.c
C:\Bin\00.Example\C>test
ABCDEFG
abcdefg
c = 10 , strlen(s) = 7
C:\Bin\00.Example\C> |
|