#include<stdio.h>
int main(){
char a[20]={0},b[20]={0};
char*q=a,*p=b;
printf("請輸入第壹串數字\n");
gets(a);
printf("請輸入第二串數字\n");
gets(b);
printf("第壹串數字為\n");
puts(a);
printf("第二串數字為\n");
puts(b);
while(*q!='\0'){
q++;
}
while(*p!='\0'){
*q=*p;
q++,p++;
}
printf("連接後的字符為:\n");
puts(a);
return 0;
}
擴展資料:
gets()用法:
示例
C:
#include<stdio.h>//這個頭文件包含gets()函數,這個函數在ISO/IEC 9899 2011(C11)標準中被移除
int main(void)
{
char str1[5];//不要char*p,然後gets(p),這是錯誤的,因為p沒有指向有效的內存,它可能指向任何非法地址//地方的未知大小的內存塊,這樣以來,就可能修改了不屬於本程序的內存的內容
gets(str1);
printf("%s\n",str1);
return 0;
}
#include<stdio.h>//gets_s()用法
#define CH 20
int main(void)
{
char ch[CH];
printf("請輸入妳的名字:\n");
gets_s(ch,CH);//這裏不能用gets_s(ch);
printf("這是妳的名字:%s\n",ch);
return 0;
}
C++:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char str[100];
gets(str);
cout<<str<<endl;
return 0;
}
gets()函數用來從標準輸入設備(鍵盤)讀取字符串直到換行符結束,但換行符會被丟棄,然後在末尾添加'\0'字符。其調用格式為:
gets(s);
其中s為字符串變量(字符串數組名或字符串指針)。
gets(s)函數與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函數輸入字符串時存在壹個問題,就是如果輸入了空格會認為字符串結束,空格後的字符將作為下壹個輸入項處理,但gets()函數將接收輸入的整個字符串直到遇到換行為止。
也就是說:gets()函數讀取到\n(我們輸入的回車)於是停止讀取,但是它不會把\n包含到字符串裏面去。然而,和它配合使用的puts函數,卻在輸出字符串的時候自動換行。
說明編輯
gets(s)函數中的變量s為壹字符串指針。如果為單個字符指針,編譯連接不會有錯誤,但運行後內存溢出錯誤。
寬字符版本,當使用unicode寬字符文本時,使用這個函數_getws();
在C11標準中被刪除,可用C標準庫中的fgets代替.