c语言-请问此c程序哪里出错了。。谢谢

问题描述

请问此c程序哪里出错了。。谢谢

要求将输入的两个字符串连接起来。
#include
#include
char s1[80],s2[80];
int main()
{ void f();
printf("say sth:");
gets(s1);
printf("say sth. again:");
gets(s2);
f();
}
void f()
{ int i;
strcat(s1,s2);
for(i=0;i<=80;i++)
printf("%c",s1[i]);
}

解决方案

 #include <stdio.h>

char s1[80],s2[80];

void f(char *a, char * b)
{
    char * a1 = a;
    while (*a1 != '') a1++;
    for (char * b1 = b; *b1 != ''; b1++,a1++)
    {
        *a1 = *b1;
    }
    *a1 = '';
}

int main()
{
  printf("say sth:");
  gets(s1);
  printf("say sth. again:");
  gets(s2);
  f(s1,s2);
  printf("%s",s1);
  return 0;
}

say sth:hello
say sth. again: world
hello worldPress any key to continue

解决方案二:

这个程序没有错,只是可能不符合要求,因为你只是简单调用了strcat

解决方案三:

如何写出移植性好的C程序(一)

解决方案四:

此段程序 ,可能出现的错误是内存越界
如果 s1 与 s2 的长度和大于 80,这样按上述代码操作, s1 无法存贮下合并后的字符串而导致内存越界。

时间: 2024-12-30 12:29:17

c语言-请问此c程序哪里出错了。。谢谢的相关文章

编程-请问这个c程序哪里出错了? 谢谢!!

问题描述 请问这个c程序哪里出错了? 谢谢!! 题目要求:输入一行字符,将其中最长的单词输出. #include int main() { void f(char s[]); char s[100]; printf("enter a sentence:"); scanf("%s",s); f(s); } void f(char s[]) { int i,n,m=0,sum=0,temp=0; for(n=0;s[n+m]!='';n++) { for(i=0;s[m

数据结构 单链表-帮我看看下面的程序哪里出错了,刚从数据结构学的单链表,运行不了

问题描述 帮我看看下面的程序哪里出错了,刚从数据结构学的单链表,运行不了 就简单的取值 插入 删除 合并 #include #include #include typedef struct LNode { int num; struct LNode *next; }LNode,*LinkList; void InitiList(LinkList L) { L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; } void LocateElem(Link

运行错误-求c语言大神帮忙看看哪里出错了

问题描述 求c语言大神帮忙看看哪里出错了 #include #include #include struct course { int num; //选题编号 char name[20];//课题名称 char kind[10];//课程性质 int taltime,ttime,etime,mark,term;//课程时间,学分,开课信息 }; struct student { int snum; //学生学号 int cnum; //所选课题编号 char cname[20];//所选课题名称

线程-让小球受键盘控制移动,我的程序哪里出错了小球不动

问题描述 让小球受键盘控制移动,我的程序哪里出错了小球不动 java新手一只.这是我的原程序,java新手一只,求大神解惑 import java.awt.*; import javax.swing.*; import java.awt.Graphics;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.KeyListener; /**坦克大战0.4 *@author 安晔

汇编语言-请大神们帮我看一下这个程序哪出错了,万分感谢!!

问题描述 请大神们帮我看一下这个程序哪出错了,万分感谢!! STACK1 SEGMENT STACK DW 200 DUP (?) STACK1 ENDS DATA SEGMENT SPACE DB 1000 DUP (' ') PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ') DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ') DB 6 DUP (' '),0C8H,26 DUP

c语言-请问这个c程序哪里有错,执行有误

问题描述 请问这个c程序哪里有错,执行有误 #include <stdio.h> #define n 2 struct student {int number; char name[10]; int score; }stu[n]; void save() {FILE *fp; int i; if((fp=fopen("file1.dat","w"))==NULL) {printf("error"); return; } for(i=0

编程c语言-请问该fun 函数中哪里错了,大神指点迷津

问题描述 请问该fun 函数中哪里错了,大神指点迷津 #include void fun(int m, int k, int xx[]) { int j,n=0,a,b=0; while(n<k) { a=m+1; for(j=1;j<a;j++) { if(a%j==0) b++; } if(b==0) xx[n++]=a; } xx[n]=0; } main() { int m, n, zz[1000] ;void NONO (); printf("nPlease enter t

请问这个程序哪里出错了?java写文件和读文件

问题描述 //=============================写文件packagefier;importjava.io.*;publicclasswrite{publicstaticvoidmain(String[]args){write("E:\123.txt","hello");}publicstaticvoidwrite(Stringpath,Stringcontent){Strings=newString();Strings1=newString(

此程序那儿出错了?在Eclipse中运行结果如下。

问题描述 importjava.util.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;/***银行类**/classBank{privatedoublebalance;//余额Bank(doubleb){balance=b;}publicvoiddeposite(doubledAmount)//存钱{if(dAmount>0.0)balance+=dAmount;JOptionPane.showMessageDial