C++ 删除字符串中的数字并重新按顺序排列
#include <stdio.h> #include <string.h> char* Find_str(char* p) { for (int i = 0; i < strlen(p); i++) { for (int j = 0; j < strlen(p); j++) { if (p[j] >= '0'&&p[j] <= '9') //如果发现字符串为数字,则进入循环 { for (int k = j; k < strlen(p); k++) { p[k] = p[k + 1]; // 讲当前位置数字的字符串覆盖为后一位,并把后面的元素值,全部向前位移一位 if (k == strlen(p) - 1) //如果找到末尾,则把末尾的值截断 { p[j] = '\0'; } } } } } return p; //返回当前的字符串 } int main() { char arr[50] = "aaaa1111bbbb1234cccc4567dddd"; printf("即将把以下字符串中出现的数字删除!\n%s", arr); printf("\n%s\n", Find_str(arr)); return 0; }