ft_substr
💻 ft_substr
文字列sの開始位置からlenを切り取ることによって返される関数.
📃 ft substrプロトタイプ
*s:切り取るソース文字列
start:文字列の切り取りを開始する位置
len:文字列の切り取りサイズ
📬 return
char*型リターン startがsの長さより大きい場合、0を含む記憶空間 が戻る.文字列を切り取った場合は、末尾に0を入れて文字列を返し、mallocにストレージスペースを割り当てる必要があります.
🧨 注意事項
startの値が文字列sの長さより大きい場合、 ft strcheck関数は、値0を含む記憶領域を割り当て、 を返します. lencheck関数は、切り取りが完了する文字列の長さを確認する関数であり、sの長さからstartの長さを減算すると、lenの長さがより長い場合はs-start、lenがより短い場合はlenを返す.
クリップされた 文字列はmallocを使用して記憶領域を割り当てて返さなければなりません.文字列の末尾には0が含まれている必要があります. malloc割当てに失敗した場合NULLを返し、関数 を終了する
パスワード
文字列sの開始位置からlenを切り取ることによって返される関数.
📃 ft substrプロトタイプ
char *ft_substr(char const *s, unsigned int start, size_t len)
🔩 parameters*s:切り取るソース文字列
start:文字列の切り取りを開始する位置
len:文字列の切り取りサイズ
📬 return
char*型リターン
🧨 注意事項
startの値が文字列sの長さより大きい場合、
クリップされた
パスワード
#include "libft.h"
char *ft_startcheck(void)
{
char *rtv;
rtv = malloc(sizeof(char));
if (rtv == 0)
return (NULL);
rtv[0] = '\0';
return (rtv);
}
int lencheck(char const *s, unsigned int start, size_t len)
{
if ((ft_strlen(s) - start) < len)
return ((ft_strlen(s) - start));
else
return (len);
}
char *ft_substr(char const *s, unsigned int start, size_t len)
{
size_t i;
size_t j;
char *sub;
i = 0;
j = 0;
if (ft_strlen(s) < start)
return (ft_startcheck());
sub = (char *)malloc(sizeof(char) * (lencheck(s, start, len) + 1));
if (sub == 0)
return (NULL);
while (s[i])
{
if (i >= start && j < len)
{
sub[j] = s[i];
j++;
}
i++;
}
sub[j] = '\0';
return (sub);
}
Reference
この問題について(ft_substr), 我々は、より多くの情報をここで見つけました https://velog.io/@jen133/ftsubstrテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol