今天讲了数组和字符串.
做了几道经典的题
根据输入的字符串,统计有多少个单词,并且输出这些单词
void printChar(char ch[], int size)
{
int i = 0;
int count = 0;
int engCount = 0;
char str[255][255];
int k = 0;
//int len = (int)strlen(str[0]);
while(ch[i]!='\0')
{
if( (ch[i]>='a' && ch[i]<='z') || (ch[i]>='A' && ch[i]<='Z' ) )
{
printf("%c",ch[i]);
str[engCount][k] = ch[i];
count++;
k++;
}
if( ((ch[i]>='a' && ch[i]<='z') || (ch[i]>='A' && ch[i]<='Z' )) && ch[i+1] == ' ' )
{
str[engCount][i+1] = '\0';
printf("\n");
engCount++;
k = 0;
}
i++;
}
if(ch[i] == '\0' && ((ch[i-1]>='a' && ch[i-1]<='z') || (ch[i-1]>='A' && ch[i-1]<='Z' )) )
{
engCount++;
}
printf("\n共有%d个字母\n",count);
printf("共有%d个单词\n",engCount);
printf("二维数组输出为:\n");
for (int i=0; i<engCount; i++)
{
printf("%s\n",str[i]);
}
}
main函数里面:
char str[] ={'\0'};
printf("请输入一串段英文:");
gets(str);
//int len = sizeof(str)/sizeof(char);
int len = (int)strlen(str);
//printf("%s\t%d",str,len);
printChar(str,len);
最后运行的结果为:
从控制台输入一些数组,这些数组数量不确定(有上限要求,例如20),以0作为输入的结束。然后输入完毕之后需要打印输入的数字以及总个数。然后找出这些输入的数字中的最大值及最小值。
void getsChar()
{
int arr_int[20];
int count = 0;
int max = 0 ;
int min = 0 ;
printf("please input a array:");
for( int i = 0;i<20;i++)
{
scanf("%d",&arr_int[i]);
if(arr_int[i] == 0)
{
printf("输入的数据如下:\n");
for (int k=0; k<i; k++)
{
printf("%d ",arr_int[k]);
continue;
}
break;
}
count++;
}
max = min = arr_int[0];
for( int i = 1;i<count;i++)
{
if(max<arr_int[i])
{
max = arr_int[i];
}
if(min>arr_int[i])
{
min = arr_int[i];
}
}
printf("\n共输入了%d个数据\n",count);
printf("最大值:%d \n最小值:%d",max,min);
}
输入几个数字,然后对其进行排序,要求结果为从大到小。
void bubbleSort()
{
int num_arr[20];
int count = 0;
printf("please input a few Numbers:");
for (int i = 0; i<20; i++)
{
scanf("%d",&num_arr[i]);
if( 0 == num_arr[i] )
{
break;
}
count++;
}
for (int i=0; i<count; i++)
{
for (int j = i+1; j <count; j++)
{
if(num_arr[i]<num_arr[j])
{
int temp = num_arr[i];
num_arr[i] = num_arr[j];
num_arr[j] = temp;
}
}
printf("%d ",num_arr[i]);
}
printf("\n输入了%d个数据",count);
}
由控制台输入5个书籍名称,然后排序整理,按照字母顺序来排序整理。然后输出排序后的名称。
void bookArray()
{
char bookArr[5][20];
int len = 5;
for(int i = 0 ; i<len ;i++)
{
printf("请输入第[%d]个书名:",i+1);
scanf("%s",bookArr[i]);
}
printf("\n您输入的书名为:\n");
for(int i = 0 ; i<len ;i++)
{
printf("第[%d]个书名:%s\n",i+1,bookArr[i]);
}
printf("排序后:\n");
for(int i = 0 ;i<len ;i++)
{
for(int j=i+1 ;j<len;j++)
{
int n = strcmp(bookArr[i], bookArr[j]);
if( 0 == n)
continue;
else if( n > 0)
{
char temp[20];
strcpy(temp,bookArr[i]);
strcpy(bookArr[i],bookArr[j]);
strcpy(bookArr[j],temp);
}
}
printf("%s\n",bookArr[i]);
}
}