當前位置:編程學習大全網 - 編程語言 - 用指針實現字符串的連接

用指針實現字符串的連接

#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代替.

  • 上一篇:華為面試題有哪些?
  • 下一篇:給小學三年級的孩子買書,有什麽好的建議和推薦嗎?
  • copyright 2024編程學習大全網