C 语言 在一个二维字符串数组中如何删去重复的字符串,注意是字符窜重复!不是字符
作者&投稿:盛影 (若有异议请与网页底部的电邮联系)
#include
#include
main()
{int i,a[127]={0};
char s[100];
printf("Enter a string:
");
gets(s);
for(i=0;i<strlen(s);i++)
if(a[(int)s[i]]==0)
{a[(int)s[i]]=1; printf("%c",s[i]);}
printf("
");
}
string[] stringArray = { "aaa", "bbb", "aaa", "ccc", "bbb", "ddd", "ccc", "aaa", "bbb", "ddd" };
//List用于存储从数组里取出来的不相同的元素
List listString = new List();
foreach (string eachString in stringArray)
{
if (!listString.Contains(eachString))
listString.Add(eachString);
}
//最后从List里取出各个字符串进行操作
foreach (string eachString in listString)
{
Console.Write(eachString); //打印每个字符串
}
#include <stdio.h>
#include <string.h>
#define N 5
int main(void)
{
char str[N][128] = {"hello", "hello", "good", "good", "luck"};
int i = 0, j;
for (i = 0; i < N - 1; i++)
{
if (strcmp(str[i], str[i + 1]))
{
for ( j = i; j < N - 1; j++)
{
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], "");
}
}
}
for (i = 0; i < N; i++)
printf("%s\n", str[i]);
return 0;
}
学习!
謇阁益肝: 这种崩溃多半是数组访问越界.如果你的bookname没有100个成员,那么只要访问bookname[i]就会发生越界 for(i=0;i<100;i++) 改成 for(i=0;i<bookname.Length;i++) 试试.Length我不记得是不是C里面支持的数组函数了,你自己查查,总之就是不要超过数组长度 不行的话,你就先定义一个数组长度变量,用它来定义数组和执行循环,就不会出错了 int max_length; for(i=0;i<max_length;i++)
城子河区13740707804: c语言二维数组 字符串 - ?
謇阁益肝: char ch[3][4]={123,456,78} 是个二维数组,该数组有三个元素,每个元素是最大长度为3的字符串(最后一个是结束符0) 也就是说:ch[0]=123,ch[1]=456,ch[2]=78而:ch[0][0]=1,ch[0][1]=2,ch[0][2]=3
城子河区13740707804: C语言把一些字符串存入一个二维数组(在线等) - ?
謇阁益肝: 猜测:你的目的是读文件中的多行出来,然后分行存储二维数组,最后按每行再输出出来;解决方法:如果是读多行,正常情况下应该是每行每行往外读,而不是一下子全读出来.用一个for循环,每次调fgets函数,只读一行.读一行存一行....
城子河区13740707804: c语言 我想输入一个字符串,自动存入二维字符数组中,如输入asddfffeedfewf, 数组啊a【50】【2】, 请问能不能做到啊?能则怎么写啊????
謇阁益肝: a[50][2]={"要输入的字符串"}http://www.51zxw.net/study.asp?vip=11505699 来这看看
城子河区13740707804: C语言怎样将一维字符数组存放到二维数组中? - ?
謇阁益肝: 1、例如:s1[0][0]是'w' s1[0][1]是'h' s1[1][0]是'f' 字符型数组,每个元素是一个字符,每一行是一个字符串.比如要打印while,就打印s1数组的第一行.2、例程:#include<stdio.h> void main() { int i; char a[10]; char b[2][10]; for (i = 0; i != 2; ++i) { scanf("%s", a); strcpy(b[i], a); } for (i = 0; i != 2; ++i) { printf("%s\n", b[i]); } }
城子河区13740707804: 定义一个2维字符串数组,怎么样对它进行scanf 用c语言?
謇阁益肝: #include "stdio.h" #include "string.h" #include "stdlib.h" int main() { char *str[2][2]; int i,j; for(i=0;i<2;i++) for(j=0;j<2;j++) { str[i][j]=(char*)malloc(1024*sizeof(char)); scanf("%s",str[i][j]); } return 0; }
城子河区13740707804: C语言里如何输入几个字符串放到一个数组中 - ?
謇阁益肝: #include <stdio.h> void main() { char s[10][80]; for(i=0;1<10;i++) { gets(s[i]); } } 这个实现的是输入的每一个字符串存放在二维数组s的一行中
城子河区13740707804: c语言如何在一个数组中存储字符 - ?
謇阁益肝: 看来你对数组的初始化赋值还不熟, char i[20]={'1','A','10','AB'} 中的'AB'是错误的,不能有两个字符,只能是一个,'A'或者'B' ,而后面 char i[20]={"1","A","10","AB"}也是错误的,出现多个字符串,这应该是二维数组后者或者指针数组等,可以改为char i[4][20]={"1","A","10","AB"}
城子河区13740707804: 在c语言二维数组中怎样交换两个数组元素中的字符串,请写代码. - ?
謇阁益肝: 帮你写了一个: #include <stdio.h> char name[10][20]; void input() { int i; printf("请输入十个学生的名字!\n"); for (i=0; i<10; i++) { scanf("%s", &name[i]); } } void output() { int i; printf("输入的十个学生的名字为:\n"); for (i=0; i<10; i++) { printf("%s\t", &name[i]); } } void main() { input(); output();getchar(); } 运行结果:
城子河区13740707804: C语言关于二维字符数组的使用 - ?
謇阁益肝: 这是c语言里字符数组的常见错误.c语言里给字符数组赋值很麻烦, 像char string[10]; string = “aaa”;这样的语句不能用来给字符数组赋值. 这种方法只有在定义的时候才能用 如char string[10] = “aaa”;你的关于二维数组的想法是对的,你的a[m][n]里,每个a[m]就相当于上述的string[10]的string,存放着数组的首地址.错的就是赋值的方法,可以#include然后用strcpy(a[i],"ZQU");strcpy()这个函数就是字符串复制 string copy.