精华内容
下载资源
问答
  • 函数readDat()是从文件in71.dat中读取20行数据存放到...请编制函数jsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符数组xx中。最后调用函数 writeDat()把结果xx输...

    函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请

    函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数 writeDat()把结果xx输出到文件out71.dat中。

    条件:从字符串中间一分为二,左边部分按字符的ASCⅡ值降序排序,右边部分按字符的ASCⅡ值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。

    例如: 位置 0 1 2 3 4 5 6 7 8

    源字符串 a b c d h g f e

    1 2 3 4 9 8 7 6 5

    处理后的字符串 d c b a e f g h

    4 3 2 1 9 5 6 7 8

    注意:部分源程序已给出。

    请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

    试题程序:

    include<stdio. h>

    inc lude< st ring. h>

    inc lude<conio, h>

    char xx[20] [80];

    void jsSort()

    {

    }

    void main ( )

    {

    readDat ();

    jsSort ();

    writeDat ( );

    }

    readDat ( )

    {

    FILE *in;

    int i=0;

    char *p;

    in=fopen ( "in71.dat", "r");

    while (i<20 && fgets(xx[i],80,in)!=NULL)

    {

    p=strchr (xx [i] , ' \n' );

    if(p)

    *p=0;

    i++;

    }

    fclose (in);

    }

    writeDat ( )

    {

    FILE *out;

    int i;

    clrscr ( );

    out=fopen ( "out71.dat", "w" );

    for (i=0; i<20; i++)

    {

    printf("%s\n",xx[i]);

    fprintf (out, "%s\n" ,xx[i] );

    }

    fclose (out);

    }

    展开全文
  • 字符数组排序使其能对字符数组进行排序

    问题描述

    程序代码

     

    #include <stdio.h>
    #include <stdlib.h>
    /*
    *csdn学院--2016级
    *目的:让代码见证成长(作为一个初学的菜鸟,如
    *大家有发现错误,欢迎指正!)
    *文件名称:Myfun172.c
    *问题描述:删除数组元素
    *作者:小臣小仁
    *完成日期:2017年10月12日
    */
    //两个函数bubble_sort和output_array的声明
    void bubble_sort(char [],int);
    void output_array(char [],int);
    int main( )
    {
        char a[20] = {'s','o','r','t','b','u','b','b','l','e','s','e','l','e','c','t','o','k','o','k'};
        char b[15] = {'f','b','a','t','b','u','b','c','e','s','t','o','k','e','v'};
        bubble_sort(a,20);   //用冒泡法按降序排序a中元素
        output_array(a,20);   //输出排序后的数组
        bubble_sort(b,15);   //用冒泡法按降序排序b中元素
        output_array(b,15);   //输出排序后的数组
        return 0;
    }
    //请在下面定义bubble_sort和output_array函数
    void bubble_sort(char arr[],int n)
    {
        int i,j,t;
        for(i=0;i<n-1;i++)
            for(j=0;j<n-i-1;j++)
                if(arr[j]<arr[j+1])
                {
                    t=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=t;
                }
    }
    void output_array(char arr[],int n)
    {
        int i=0;
        while(i<n)
        {
            if(i%5==0)
                printf("\n");
            printf("%c ",arr[i]);
            i++;
        }
        printf("\n");
    }
    

     

     

     

     

     

    输出结果

     

    心得体会:

                  作为一个初学的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵

    laugh.gifuploading.4e448015.gif转存失败重新上传取消大笑

    展开全文
  • 问题描述: 在C++中为结构体中的字符数组赋值时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。问题分析: 结构体中定义的数组:char brand[20],使用 t-&gt;brand="adc&...


    问题描述:

            在C++中为结构体中的字符数组赋值时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。



    问题分析:

                结构体中定义的数组:char brand[20],使用 t->brand="adc"是无法进行赋值的。因为brand是字符数组名,而“adc”字符串常量,字符数组名不无法修改的! 可以在对结构体初始化时用字符串常量进行赋值。


    解决办法:

            1、用字符指针替代字符数组

     


         2、使用strcpy对结构体数组赋值


        3、使用string

                                                           

    展开全文
  • 老犯此类错误!!! char *p = "abc";则abc存储在常量存储区,而p直接指向了这个常量存储区,所以不能改变abc的内容 *p = 'd'; 是错误的,因为是常量存储区,不能改变。 char *p = NULL; *p = 'd'; 也是错误的。...

    老犯此类错误!!!
    char *p = "abc";则abc存储在常量存储区,而p直接指向了这个常量存储区,所以不能改变abc的内容
    *p = 'd'; 是错误的,因为是常量存储区,不能改变。

    char *p = NULL;
    *p = 'd';
    也是错误的。
    char *p;
    *p='d';
    也是错误的,提示指针没有赋初值。
    以上几种更不可以strcpy(p,"abc");

    总之,上面的指针都相当于const char *p,不能修改*p的内容!但可以修改其指向,如:

    char *a = "abc";
    p = a;

    是可以的。但这样的操作不安全!!因为如果一旦a被回收了,p就跟着完蛋了。尤其是如果在子函数中,局部变量自动回收,这种不安全行为就会突出。




    字符数组:
    char p[]="abc";//相当于strcpy(p,“abc”),如果定义在全局,abc就在全局区,如果在局部,abc就在栈内。
    *p = 'd'; 是正确的,
    不过这样的p已经固定了其长度(为3+1=4),p相当于数组p[4],且p[3]=='\0'
    printf("%d\n",p[3]);
    p[3] = 'b';
    printf("%d\n",p[3]);
    都是可以的。
    但p[4] = 'd'越界

    总之,字符数组相当于有限长度的char *const p;

    可以修改内容,但不可以修改指向



    如果想要一个可以改变值且不固定长度的字符串,安全的办法就是使用动态分配malloc和realloc
    char *a = "abc";
    char *p = (char *)malloc(sizeof(char)*strlen(a));
    strcpy(p,a);
    是正确的。


    另外对于字符串或者数组,要时刻注意在后面添加结束符'\0',否则极易出问题,比如 

    	int i;
    	char a[5];
    	for(i=0; i<4; i++)a[i]=i+'0';
    	printf("%s",a);

    没有结束符,打印出来是乱码。

    安全简单的做法是声明数组时让其元素初始化为{0}

    	int i;
    	char a[5] = {0};
    	for(i=0; i<4; i++)a[i]=i+'0';
    	printf("%s",a);

    当然不能把最后一个结束符都挤掉了,比如下面的也会出问题

    	int i;
    	char a[5] = {0};
    	for(i=0; i<5; i++)a[i]=i+'0';
    	printf("%s",a);

    因为最后的结束符a[4] 被冲掉了。

    展开全文
  • 反序列化时出现“base-64 字符数组的无效长度”错误提示的解决程序中实现了这样一个功能,将一个对象序列化后,作为参数传递给另一个页面,这个页面得到参数并反序列化后还原此对象,但是在运行时有时正常,有时出现...
  • 问题描述:有一个用字符指针表示的字符串char *str = "0 12"; 有一个数组 char buf[128] = {0}; 现在需要将字符指针表示的字符串"0 12",放入到数组buf中。 一、首先了解一下字符串的表示方式,即c语言中怎样定义...
  •  在C++中为结构体中的字符数组赋值时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。   问题分析:  结构体中定义的数组:char brand[20],使用 t-&gt;brand="adc&...
  • 字符数组字符串,字符指针,处理字符串的函数
  • C4_一维数组、字符数组、数组排序

    千次阅读 2014-10-25 11:35:57
    数组:相同数据类型的成员(元素)组成的
  • 结构体转化成字符数组

    千次阅读 2014-09-02 11:07:00
    昨天晚上在解决通过socket发送结构体的问题的时候,知道了可以将结构体先转化成字符串的形式再发送,但今天之前一直有个疑问没有解决(为了方便描述,去掉socket部分),首先看下代码: #include #include #...
  • 字符数组

    2008-12-24 23:54:00
    字符串与字符数组都是描述由多个字符构成的数据,字符串借用字符数组来完成处理。但请注意: (1)表示字符串数据用双引号表示,而字符数据用单引号。 (2)字符串的长度可以根据串中字符个数临时确定,而字符数组...
  • 最近自己遇到了这类问题,在csdn上找到了很...在C++中的结构体或者类中定义了一个字符数组,那么在类(或者结构体)外去赋值的时候,会出现一些问题:如下图所示: Person p = {“张三”,18};//正确 p.m_Name = “张...
  • 字符和字符串(字符数组)处理

    千次阅读 2009-09-16 15:49:00
     fgets字符串指针改成字符数组,消灭了Segmentation fault错误 char *re,*rec ; re=fgets(rec,100 ,srcstream);  出Segmentation fault错误   改成 char *re,rec[100]; re=fgets(rec,100, ...
  • 题目:计算字符串最后一个单词的长度,单词以空格隔开。 一行字符串,非空,长度小于5000。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 ...
  • 二维数组:M个同学N门课成绩处理,字符数组存放姓名 #include<iostream> #include<iomanip> using namespace std; const char M=3; const int N=4; int main(){ char name[M][20]={0}; double score[M...
  • 昨天调试程序(见下面代码)遇到下面一个问题: #include int main() { int i = 1; while(i) { char str[100]; printf("please input a str:\n"); gets(str); puts(str); printf("continue:1,break:0\...
  • 字符数组未初始化的错误形式

    千次阅读 2011-03-28 15:22:00
    REPNE SCAS BYTE PTR ES:[EDI] 语句crash的情况   通常, 这样的指令用在字符串长度描述, 而这样的语句在执行时错误, 而且怎样也过不去, 原因大部分是存在字符串没有初始化正确, 导致内存访问非法,...
  • *问题描述:定义一个数组统计字符数组中每一个大小写字母出现的次数。 *程序输出:字符数组每一个大小写字母出现的次数。 */ #include #include using namespace std; int main() { char str[50],m='A',n=...
  • 字符串与数组

    千次阅读 2009-09-08 17:35:00
    5.字符串与数组 在许多程序中,字符串(或字符数组)是很重要的一部分。在GNU C库中提供了广泛字符串工具函数,包括字符串复制、串联、比较、搜索。这些函数中的大多数都能够在内存的任何地方操作;例如,函数...
  • JavaScript数组转换为字符串 将数组转换为字符串 此处使用的是数组的中的join()方法 括号里面的参数是可选的。可以自己指定用于分隔每个元素的字符串。分隔符将转换为字符串。如果省略,则类型化的数组元素以逗号...
  • 有一个字符数组,将数组中的每一个字符串按照字母序排序后,再将整个字符数组按照字典序排序。整个操作的时间复杂度为多少? 错误的解答 设数组长度为n,每个字符串按字母序排序为O(nlogn)一共为O(nnlogn),...
  • 100个开源C/C++项目中的bugs ...数组字符串处理的错误 未定义行为 与运算符优先级相关的错误 格式化输出错误 代码打印错误例子 不正确的使用基本函数和类 无效代码的例子 总为 true 或 false 的条件
  • 最近要用自动化组件传递字符数组,查阅MSDN相关资料,还是觉得不够详尽。费了好大力气才调通,(也可能是水平不够,见笑)。特写下一简单实例,希望会其他人有所帮助。 为自动化传递数组要选择VARIANT类型,在...
  • 数组字符出现的次数问题

    千次阅读 2017-06-04 12:49:39
    在编程题中经常会遇到数字在数组中出现的次数这种问题,常见的问题有:第一次出现的数字,只出现一次的数字,一个数字出现几次,要注意数组的形式,是排序数组还是没有规律数组,考虑这几个方面,解题思路是不同的。...
  • C++基础 -- 指针与数组1、一维数组和指针1.1、一维数组的地址1.2、指向一维数组的指针变量1.3、通过指针访问一维数组元素 1、一维数组和指针 1.1、一维数组的地址   数组由若干元素组成,每个元素都有相应的...
  • C++结构体中有字符数组时不能通过指针间址修改问题描述:原因分析:解决方案: 问题描述: 先贴一段错误代码,错误报告“表达式必须为可修改的左值”。 #include<iostream> using namespace std; struct S {...
  • 这篇博客发出来只是为了应付明天的数据结构考试,如有错误欢迎指正! 《数据结构C语言版第2版》的课后习题里有这两道题(答案是CA) 书上求next数组和nextval数组的代码如下: 快速求next数组的方法: i == 1时...
  • 在前面HelloWorld篇中,自动生成的头文件本地方法声明的形参列表中的第一...今天这篇文章将学习JNI本地函数中如何与Java代码中的字符串、数组相互访问(或转换)。通过这篇文章的学习,相信会JNIEnv有进一步了解。
  • 指针、数组字符串是C/C++语言中重要的组成部分,很多人认为指针比较难理解,而初学者更容易在这里犯错误,其实当你真正理解其本质后,也就不难了。 首先来看一些错误用法的示范:
  • 字符数组定义和引用 字符数组初始化 字符数组的结束标志 字符数组的输入和输出 字符数组应用 多维数组 数组的排序算法 选择法排序 冒泡法排序 交换法排序 插入法排序 折半法排序 排序算法的比较 字符串...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 206,299
精华内容 82,519
关键字:

下面对字符数组描述错误的是