解释都在注释里面了:
//主要思路是将源数组中的‘-’替换为'\0',将原数组分割成若干小数组,然后用指针数组指向分割的各个部分,最后输出
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
char src[200] = { 0 };
char* ptr[50] = { 0 };
//存储分割后各部分的首地址
while (scanf_s("%s", src, 200) != EOF)
{
int len = strlen(src);
int i = 0, j = 1;
ptr[0] = src;
for (i = 0; i < len; i++)
{
if (src[i] == '-')
{
src[i] = '\0';
ptr[j++] = src + i + 1;
}
}
for (int i = 0; i < j; i++)
{
if (*ptr[i] != '\0')
{
printf("%s\n", ptr[i]);
}
else
{
printf("null\n");
}
}
printf("\n");
}
}
千里之行,始于足下,加油!!