gpt4 book ai didi

c - 通过 char 第一个位置的 char 将 char* 分成两个 char*

转载 作者:行者123 更新时间:2023-11-30 21:39:46 28 4
gpt4 key购买 nike

我有一个字符*:

char* version = "10.5.108";

我想通过字符分隔符获取两个新的 char*。

char delimiter = '.';

执行以下代码后:

printf("|%s|%s|", first, second);

应该导致:

|10|5.108|

最佳答案

捕获!:)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>


int main(void)
{
char *version = "10.5.108";
char *first, *second;

if ( ( second = strchr( version, '.' ) ) == NULL )
{
first = malloc( strlen( version ) + 1 );
strcpy( first, version );
second = malloc( sizeof( char ) );
*second = '\0';
}
else
{
ptrdiff_t n = second - version;
first = malloc( ( n + 1 ) * sizeof( char ) );
second = malloc ( ( strlen( version ) - n ) * sizeof( char ) );

strncpy( first, version, n );
first[n] = '\0';
strcpy( second, version + n + 1 );
}

printf( "|%s|%s|", first, second );

free( first );
free( second );

return 0;
}

输出为

|10|5.108|

关于c - 通过 char 第一个位置的 char 将 char* 分成两个 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053255/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com