c語言指針復制字元串
❶ c語言指針字元串賦值
在C語言中並沒有字元串這個類型。所說的字元串就是字元數組。也就是char類型的數組。
與普通數組不同的,字元串必須以'\0'作為結束符。
而在C語言中,類型為T的一維數組,其首地址等效於該類型的一維指針,即T*型。
於是字元串,也就是字元數組,首地址就可以當做char *型使用了。
事實上,在庫函數以及大多數使用到字元串作為參數的函數中,其參數都是char *型的。
❷ C語言 用字元串指針實現兩個字元串的復制 我寫成這樣的但是程序一直不能運行是哪裡錯了嘛請大佬們指點
把for(*p1!='\0';p1++;p2++);和*p2='\0';兩行改成whie(*p2++=*p1++);就可以了……
❸ C語言求助字元指針復制函數~
#include<stdio.h>
int main()
{
void (char *from,char *to);
char a[81]; //源串數組
char b[81]; //目標串數組,此數組要保證不小於源串,不然,數據會產生越界問題
printf("input a string:" );
gets(a); //輸入一個字元串數據,如:hello,world
(a,b);
printf("%s\n",b);
return 0;
}
void (char *from,char *to)
{
for(;*from!='\0';from++,to++)
{
*to=*from;
}
*to='\0';
}
❹ c語言指針小程序的問題,就是字元串的復制,如果2個字元串長度不等。
有一點問題:
#include
<stdio.h>
int
main()
{
void
_string
(char
from[],char
to[]);
char
a[80]="I
am
a
teacher.";
//最好直接分配空間,使用指針變數賦值,
//容易出現非法操作關閉的現象,因為字元串常量所在區間為常量區間
char
b[]="I
am
a
good
student.";
printf("string
a=%s\nstring
b=%s\n",a,b);
printf("
string
a
to
string
b:\n");
_string(b,a);
printf("string
a=%s\nstring
b=%s\n",a,b);
return
0;
}
void
_string
(char
from[],char
to[])
{
char
*p1,*p2;
p1=from;
p2=to;
while(*p1!='\0')
*p2++=*p1++;
*p2='\0';
//復制完成後,要將字元串結束符加上,因為前面的循環是復制到'\0'為止的
}
❺ C語言,指針函數實現字元串的復制,連接,比較長度
復制函數strcpy 連接函數strcat 長度strlen 比較大小strcmp 包含在頭文件string.h 可以打開那個頭文件看具體程序段
❻ C語言中如何用指針復制字元串
#include<stdio.h>
#include<string.h>
char*string(char*str2,char*str1);
intmain(){
charstr1[30]="hello,stringcopied! ";
charstr2[30];
printf("str2=%s ",string(str2,str1));
return0;
}
char*string(char*str2,char*str1){
char*tmp=str2;
while(*tmp++=*str1++);
returnstr2;
}
❼ C語言中,用指針實現字元串的拷貝,不能用strcpy,用自定義函數實現該功能
#include<stdio.h>
#include<assert.h>/*斷言的頭文件*/
char*my_strcpy(char*dest,const char*src)
/*傳參,把src依次傳給dest,指針數組,每一個都是地址*/
{
char*ret=p;/*接收的為地址*/
assert(src!=NULL);
/*,使用指針一定要先用查找函數判斷是否為空,防止不小心將空地址傳遞*/
while(*dest++=*src++)
{
;
}
return p;/*返回的ret為字元串則用char,且為地址*/
}
int main()
{
char arr1[]="Hello world!";
char arr2[20];
char*ret=my_strcpy(arr2,arr1);
printf("%s",ret);/*列印出的為字元串*/
return 0;
}
註:%g、%G在小數點位數四位或指數大於等於精度時用%e、%E,否則用%f。
❽ 指針復制字元串問題(C語言)
#include <stdio.h>
void (char *a,int n,char *b);
int main(int argc, char * argv[])
{
char p[]="AAAAAAAAAA",q[]="BBBBBBBBBB";/*這樣聲明是為了把字元串放入變數區,否則你用時會出現段保護錯誤.*/
int a=5;
(p,a,q);
puts(q);
return 0;
}
void (char *a,int n,char *b)
{
int i;
for(i=0;i<n;i++)*(b+i)=*(a+i);
*(b+n)='\0';
}
實參字元串你已經改變了.是通過指針.
❾ 怎樣用字元指針實現兩個字元串的拷貝,求c語言程序
int *p *q
將設將q中的復制到p中
while(*q!='