数据结构 基础题 字符串

来源:互联网 发布:淘宝一件代发发货 编辑:程序博客网 时间:2024/06/05 10:25
1 下面程序段的输出结果是
1
2
3
char*p1 = ”123”, *p2 = ”ABC”, str[50] = “xyz”;
strcpy(str + 2, strcat(p1, p2));
printf(“%s\n”, str);

原代码有错:p1和p2都指向常量字符串,在常量区,所以不能对其进行操作;改为数组即可,但是用字符串初始化数组时要记得将数组长度加1,因为字符串默认的末尾有一个‘\0’;第二点要注意的是,strcat函数的p1要有足够的空间来容纳p1和p2连接后的串长。
出错
修改为以下代码将可以:
char p1[7] = "123";
char p2[] = "ABC";
char str[50] = "xyz";
strcpy(str + 2, strcat(p1, p2));
printf("%s\n", str);
结果:
2 字符串www.qq.com所有非空子串(两个子串如果内容相同则只算一个)个数是()
非空子串的个数共有n(n+1)/2=55个,由于相同子串算一个,所以要减去2个w,一个.,一个ww,一个q,所以还有50个