c语言指针类问题
设 str1=”中国人民万岁!中国一带一路将造福于全中国人民和世界人民”,输入一个整数m和n,实现把str1中的第m个字符开始,向后复制共n个字符到一个新串str4中.如:m=3,n=4 则str4的结果为 “人民万岁”
注:当m超过str1长度,无法保证n个字符取出时,都要报错提示
程序代码:# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
# include <string.h>
# include <locale.h>
int main(void)
{
setlocale(LC_ALL, "chs");
unsigned int m, n, len;
const wchar_t str1[] = L"中国人民万岁!中国一带一路将造福于全中国人民和世界人民";
wchar_t str4[32];
memset(str4, 0, sizeof (str4));
printf("请输入两个无符号整数(用空格间隔):\n");
scanf("%u %u", &m, &n);
len = wcslen(str1);
if (m > len )
{
printf("错误!\n");
return -1;
}
if (m == 0)
{
printf("第0个字符?!\n");
return -1;
}
if (n == 0)
{
printf("读取0个字符?!\n");
return -1;
}
if (len - (m - 1) < n)
{
printf("只可以读取%u个字符\n", len - (m - 1));
}
else
printf("可以读取%u个字符\n", n);
wchar_t * pbegin = str1 + m - 1;
wchar_t * pend = pbegin + n - 1;
for (int i = 0; pbegin <= pend; i++ , pbegin++)
{
if (*pbegin == '\0')
break;
str4[i] = *pbegin;
}
wprintf(L"%s\n", str4);
pbegin = pend = NULL;
return 0;
}[此贴子已经被作者于2017-11-17 21:34编辑过]
