计算系统基础习题16.3:编写一个C语言程序:把n个字符串中相同的字符串删除到只剩一个,并把剩余字符串全部移到前面。要求使用二维数组。
我将每行字符串a与它后面的字符串b(任意b>a)逐次比较,相同的话就删除后者,同时将b之后的字符串全向前挪移填补b的空位。
优点是比较次数较少,且没有引入新的数组。缺点是挪移操作不断重复。
代码如下:
#include "stdafx.h" #include #include #include int Judge(char* a, char* b);//该函数比较数组中两行字符串是否相同 int _tmain(int argc, _TCHAR* argv[]) { int n,i; printf("Input an integer:\n"); scanf_s("%d",&n); char (*a)[100]=new char[n][100];//字符串数量由用户决定 printf("Input %d strings\n",n); for(i=0;i