#include <stdio.h>
main()
{
int i,l;
int strlong(char str[20]);
char str1[20],str2[20];
scanf("%s%s",str1,str2);
printf("%s%s\n",str1,str2);
l=strlong(str1);
printf("The stri

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 19人对此回答表示赞同

    strlong(char str[20]);你调用的时候出错了,str是你定义的字符数组,但并没有初始化,有可能做在下标为21位或更高的时候才出现\0字符,所以出现越界访问
    展开
    19
    0回复
    发布于 1年前

    评论(0)

    收起评论

  • 雪中向日葵

    5人对此回答表示赞同

    你的程序是因为 strlong 函数中的 char s; 没有初始化而造成的
    修改成 char s = str[0]; 就可以了.
    但是建议你使用下面的较为标准函数声明和不要使用隐式的返回值

    #include <stdio.h>
    int strlong(char *str);
    int main()
    {
    int i, l;
    char str1[20],str2[20];
    展开
    5
    0回复
    发布于 1年前

    评论(0)

    收起评论

  • 荣光不复

    2人对此回答表示赞同

    #include<stdio.h>
    void main() //主函数加上返回值类型
    {
    int l;
    int strlong(char str[20]);
    char str1[20],str2[20];
    scanf("%s%s",str1,str2);
    printf("%s\n%s\n",str1,str2);
    l=strlong(str1);
    展开
    2
    0回复
    发布于 1年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z