题目《字符串统计》
#include <stdio.h>
#include <string.h>
int main()
{
int len, max=0, i, count = -1,k,j;
char arr[80], ret[80];
gets(arr);
while (strcmp(arr,"stop") != 0) {
for (i = 0;; i++) {
count++;
if (arr[i] == ' ') {
if (count > max) {
max = count;
}
count = -1;
}if (arr[i] == '\0') {//找出最长字符串
for (j = 0, count=0;; j++) {
if (arr[j] != ' ') {
count++;
}else{
if (count == max) {
for (k = 0; k < max; k++) {
ret[k] = arr[j - max+1+k]; //应该从此处开始报错,arr[0]此时为输入的整个字符串,而非我所想的单个字符,之前是没问题的
break;
}
}
count = 0;
}
}
printf("%d\n", max);
for (k = 0; k < max; k++){
printf("%c", ret[k]);
}
max = 0;
break;
}
}gets(arr);
}
return 0;
}
从我所标注的点开始arr[0]就是整个字符串了,我按题目输入,他就变成了“My name is Amy”,而不是我想要的n
0x00007FF6C9A05BED 处(位于 字符串.exe 中)引发的异常: 0xC0000005: 读取位置 0x000000B2777F0000 时发生访问冲突。
我实在不知道为什么呀,真没见过这场面啊,对了,直接在csdn上搜“字符串统计”就是我的这个题目