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编辑过]