[英]Copy string without strcpy
#include <stdio.h>
#include <stdlib.h>
int main() {
char *str, *temp;
str = malloc(sizeof(char) * 100);
fgets(str, 100, stdin);
temp = str;
printf("%s", str);
return 0;
}
這是不使用strcpy()
函數將一個字符串復制到另一個字符串的有效代碼嗎?
您只是將str
的起始地址復制到temp
。 這意味着對temp
任何更改也將反映在str
中,因為它們指向同一內存。 它並沒有真正模擬strcpy(dest, src)
,后者會從dest
指向的內存位置開始創建src
指向的以null終止的字符串的單獨副本 。
因此,按要求回答您的問題:不。
如果您要避免strcpy
的O(n)運行時間,那也是您實際上無法做到的事情。
如果需要進行編程作業或練習來創建功能上與strcpy
等效的代碼,以下是對其使用的算法的高級描述:
*source
的字符復制到*destination
source
,並將指針增加到destination
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.