C语言(字符数组 要解释 一会补金币100) 输入 n 个字符串为小写字母,按照字典序由小到大顺序输出
#include
int main()
{
int n, i;
char str[100];
scanf("%d", &n);
getchar();
for (i = 0; i < n; i++)
{
str[i] = getchar();
if (str[i] >= 'a' && str[i] <= 'z')
str[i] -= 32;
}
str[n] = '\0';
puts(str);
return 0;
}
代码如下:
#define N 10 int main(){char str[N][100]; int i,j; for(i = 0; i 0) { char temp[100]; strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp);} } } for(i = 0; i < N; i ++) puts(str[i]);}。
运行代码:
执行结果:
扩展资料
在C语言编程中,常常需要对字符串比较和排序,经常遇到对字符串整体的控制等操作,strcmp 比较str1和str2的大小,而其它的c函数strlen(),字符串拷贝函数strcpy()/strncpy(),字符串比较函数 strcmp(),字符串连接函数strcat()/strncat()等,都可以帮助我们快速方便的对字符串操作。
参考资料:百度百科-C语言
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 255
int _strcmp (const void* left , const void* right){return strcmp ((char*)left , (char*)right) ;}
int main( )
{
int strNum ;
scanf ("%d" , &strNum) ;
char* str = (char*)malloc(strNum * sizeof (char) * MAX_LEN) ;
for (int i = 0 ; i < strNum ; i++)
scanf ("%s" , str+MAX_LEN * i) ;
qsort (str , strNum , MAX_LEN , _strcmp) ;
putchar (10) ;
for (int j = 0 ; j < strNum ; j++)
printf ("%s
" , str+MAX_LEN * j) ;
scanf ("%*c") ;
getchar () ;
free (str) ;
return 0 ;
}
惠蚀三维: C语言中没有字符串的数据类型,而字符串的处理又非常频繁,为便于字符串的操作,C语言引入字符数组,用于存储字符串内容. 举例: main() {char ch[20];int i;printf("Input:");for(i=0;i<20;i++)scanf("%c",&ch[i]); \\用循环一个个字符...
济阳县15918611812: C语言字符数组怎么用? - ?
惠蚀三维: C语言的字符数组有两种,比较方式也有所不同. 1 字符串. C语言的字符串是用字符数组表示的.约定以'\0'(ascii码0)作为结尾标记. 对于字符串类的字符数组,可以用string.h中的strcmp函数进行比较. int strcmp(char *str1, char *str2); 其...
济阳县15918611812: c语言 字符数组 - ?
惠蚀三维: 性质都一样,在C语言中字符数组就是字符串.strcpy和strncpy用途是一样的,后者限制了拷贝字符的长度,超过长度将丢弃不拷贝.比如有a1[5],a2[]="123456",strncpy(a1,a2,5),后a1就是"12345"了,因为限制了拷贝5个长度,后面多出的就被丢弃了.而strcpy做不到这一点,它会没有限制地拷贝,如果超出数组所能容纳的长度,多余的就会溢出到内存中.所以说strncpy是strcpy的安全模式.
济阳县15918611812: C语言里字符串数组应该怎么定义 - ?
惠蚀三维: C语言并没有字符串这样的类型 是用字符数组存的. 于是 字符串数组 其实就是二维字符数组 比如 char s[10][100]; 表示10个字符串, 每个最长100个字节.
济阳县15918611812: c语言的字符数组有什么用?请举例说明!谢谢! - ?
惠蚀三维: 简单地说字符数组可以保存字符串,这要看你怎么初始化,比如char a[]="hello";就与char a[]={'h','e','l','l','o'};不一样,前者生成的字符数组有6个,即a[5]='\0',后者只有5个.当用printf("%s",a);时前者正常输出,后者输出不确定,因为它要找到'\0'输出才停止,还有其它一些规定,比如C语言里默认char *p指示的是字符串
济阳县15918611812: C语言传字符串数组 - ?
惠蚀三维: 题目不够详细啊.给你解释下什么叫字符串数组吧 字符串数组就是一个数组,他的每一个元素都是一个字符串. 在c语言中字符串是以\0结尾的一串字符,如“abcd1234\0” 字符串数组str[2]={"abc\0","123\0"} \0是结束符.字符串数组里的字符长度都为3 打印的时候只显示abc,\0不显示
济阳县15918611812: c语言字符串和字符数组和字符串数组都是什么意思,怎么定义? - ?
惠蚀三维: char *str = "abc"就是字符串,char str[] = ['a','b','c']就是字符数组.
济阳县15918611812: C语言中定义字符数组的作用是什么?为什么要定义?不定义会怎样? - ?
惠蚀三维: 定义字符数组,比如char c[10],说明在当前进程中栈中分配了10个字节给c,对于指针c来说只能用这十个字节,不能用其他的内存,
济阳县15918611812: C语言关于字符指针变量和字符数组的说法 - ?
惠蚀三维: 这里的“字符数组的值”应该指的是字符数组的地址,如果修改了这个地址,就无法找到该数组了,因此是不能变的.比如,char ch[100]; char ch2[100]; ch = ch2; //错误,ch的值不能变化
济阳县15918611812: 对c语言字符数组的描述 - ?
惠蚀三维: 只有在声明时可以用={...}形式或=“...”形式给字符数组整体赋值,之后就不可以了.