C字符数组编程问题,解决

发布于 科技 2024-04-23
24个回答
  1. 匿名用户2024-01-27

    这是 C 语言的类别:

    根本原因是字符串不是基本数据类型,它们的真名应该是“字符串数组”。

    C 不能用于为带有 = 的数组赋值。

    在定义数组时初始化 = 的使用,但这不能理解为赋值,因为这由编译器在编译时处理。

    赋值应在编译时报告错误 C2106(运算符的左操作数必须是左值)。

    因此,c 只能通过两种方式分配给字符串:

    1、strcpy,它是字母 Oak Number 的内存复制类。

    2. 循环赋值,如常规数组的赋值:

  2. 匿名用户2024-01-26

    C 语言字符串数组 strlen 的输出字符串号将遍历每个字符,直到遇到结束字符 (“0”),以便对其进行计数。 但是,month 被定义为字符串数组,它本身就是一个数组。 数组没有终结符。

    月[j++]是一根由袜子芦苇制成的绳子,所以month[j+]=0没有意义。 数组的长度在运行时是未知的(C 不判断数组余额是否越界)。 这就是为什么大多数使用数组作为参数的函数也需要提供长腔参数 len 的原因。

  3. 匿名用户2024-01-25

    strlen 是结束角色,它遍历每个姿势角色,直到遇到结束 ('\0'我能数,所以我能数。 但是 month 被定义为字符串数组,它本身是一个数组,数组没有终止符,而 month[j++] 是某个字符串,所以句子 month[j++]0 的发音是没有意义的。 数组的长度在运行时是未知的(C 不会判断数组是越界的)。

    这就是为什么大多数使用数组作为参数的函数也提供长度参数 len 的原因。

  4. 匿名用户2024-01-24

    思路:根据标题,用指针遍历字符串st,用标识变量flag将字母设置为1并第一次计数,遇到空格时将flag重置为0。

    注:本方案不考虑包含非字母,请标准化输入。 例如,“i am a stu**dent”,stu**dent 将被识别为一个词。

    它就是这样:

    #include

    int getwordnum(char st)

    char *p=st;

    int cnt=0,flag=0;

    while(*p)

    if(flag==0 &&p>='a' &&p<='z') |p>='a' &&p<='z')))

    cnt++,flag=1;

    if(flag &&p==' ')

    flag=0;

    p++;return cnt;

    int main()

    char str="i am a student";

    printf("%s 总字数 %d",str,getwordnum(str));

    return 0;

  5. 匿名用户2024-01-23

    分配 w 之后的内存布局。

    0 1 2 3 4 5 6 7 8 90 a b c d \0

    1 e f g h \0

    2 i j k l \0

    3 m n o p \0

    循环过程。 k=1 输出字符串的起始位置是&w[1][1],对应f所在的地址,所以fgh的输出,遇到0时字符串结束。

    当 k=2 时,字符串从 &w[2][2] 开始,对应于 k 的地址,因此遇到输出 kl,0 字符串结束。

    当 k=3 不满足 k<3 时,for 循环结束。

    所以结果是FGHKL

    程序出错的原因是没有声明k,for循环后没有分号,修改后的程序如下:

    #include

    int main()

    int k;

    for(k=1;k<3;k++)

    printf("%s",&w[k][k]);

    return 0;}

  6. 匿名用户2024-01-22

    %s 表示要从指定地址开始输出指定地址所在的字符串中的内容。

    for 循环 k=1 到 k<3 执行两次:

    当 k=1 时,&w[1][1] 在字符串“efgh”中输出,其中输出 &w[1][1],这是以 f 开头的内容 fgh

    当 k=2 时,&w[2][2] 在字符串“ijkl”中输出,其中 &w[2][2] 输出,即 kl,这是从 k 开始的内容

    所以最终的输出是 fghkl

  7. 匿名用户2024-01-21

    LZ试试这个方式。

    char w[10]=;

    int k=0;

    for(k=1;k<3;k++)

    printf("%s",&w[k][k]);

    输出为:

    fghkl*/

  8. 匿名用户2024-01-20

    你的 k 没有定义它是什么类型,并且在秋天写了一个分号,这是正确的:

    #include

    main()

    for(k=1;k<3;k++)

    printf("%s",&w[k][k]);

  9. 匿名用户2024-01-19

    printf("%s",&w[k][k])

    删除地址字符 &, &w[k][k] 会获取 w[k][k] 的地址而不是其值,这当然是错误的。

  10. 匿名用户2024-01-18

    #include

    #include

    main()

    for(k=1;k<3;k++)

    printf("%s",&w[k][k]);

    system("pause");

    可以这样更改它:k 没有定义。

    此外,在 devc++ 中运行时,您需要在头文件之前添加 include""添加 system( 在末尾"pause")

  11. 匿名用户2024-01-17

    printf("%s",&w[k][k]))删除 printf("%s",w[k][k])

  12. 匿名用户2024-01-16

    #include

    main()

    for(i=0;i<4;i++

    您可以运行此程序并尝试一下。

  13. 匿名用户2024-01-15

    你的 k 变量是未定义的,你应该在 char 之前写一个 int k; 它已准备好运行。

  14. 匿名用户2024-01-14

    发布错误消息以查看此程序编写得有多差。

  15. 匿名用户2024-01-13

    内存布局不是很清楚!

  16. 匿名用户2024-01-12

    1.在 C++ 中,字符数组可以分为字符数组和字符串数组。 字符数组是存储字符的数组,例如:

    char ch[4]=;在此定义中,ch 是一个字符数组,其中包含 4 个元素,但不包含字符串终止符'\0',不能形成字符串,只能用于输出。 字符串数组是包含字符串终止符的数组'\0',数组可以作为一个整体作为字符串进行操作,比如定义 char ch[20]=; 或者 char ch[20]="abcd";ch[4] 是'\0'在这种情况下,ch作为字符串的第一个地址,cin被自动识别为字符串,cin>>ch; ch 数组中的字符不是用于输出,而是一次性输出,直到到达字符串的末尾。 当然,您必须使用 for 来执行此操作,在这种情况下,字符串数组被视为字符数组,并输出输出数组元素。

    2.p 是一个指针变量,可以指向字符串"hello"作为一个字符串常量,在编程时,常量也有内存空间,但我们不知道它存储的地址,但系统知道,所以,char *p=“hello”。",这是系统更改字符串常量“hello”。",则 p 等价于具有可变地址空间的字符串数组,问题 1 中的 ch 等价于具有常量地址空间的字符串数组。

  17. 匿名用户2024-01-11

    ch 和 *ch 在分配时是相同的。

    区别在于 char *s 中的 s 指向常量,而 char s 中的 s 可以修改。

    输出 p 是输出指针指向的字符串,并保存字符串的地址。

  18. 匿名用户2024-01-10

    输入可以是 0 或 while()。

    输出可以用指针连续输出,或者同时 如果要输出地址,则是 &p 而不是简单的 p,楼下的错误是 &p 而不是 *p=&() 如果要输出地址

  19. 匿名用户2024-01-09

    C++是一种高级语言,CIN标准的输入流,它会自动处理你的输入流,为什么要用for,这里是高级语言,更智能,而且如果你每次使用的时候你都不觉得很累,这样的重复过程和常用的过程被语言设计者简化为CIN化,方便程序员。

    char *p=“hello” 典型的 C 样式字符串定义,如果使用 cout,如果要输出存储在 p 中的地址,请使用 cout<<(void*)p; ,只输出第一个字节,cout<<*p;

  20. 匿名用户2024-01-08

    20是字符串长度的定义,当然可以直接输入一个字符串到输出中。 输入中可能有错误。

  21. 匿名用户2024-01-07

    经典解释 int

    chara[12][10],二维数组。

    有 12 行数组,内大括号表示行数组,行数组用 a[0]、a[1]、a[2]....为了制作数组名称,每个行数组有 10 个元素,例如 a[i][j]:a[i] 是行数组名称,a[j] 是行数组中的元素 a[j]

  22. 匿名用户2024-01-06

    不需要循环的原因是该函数按地址启动字符串并输出输入,直到遇到 0 终止符;

  23. 匿名用户2024-01-05

    这是一个非常基本的问题,例如,在处理字符串时,我们使用字符串的第一个地址作为整个字符串。

    cout<

  24. 匿名用户2024-01-04

    1.在整数二维数组b[3][4]中输入12个数据,计算并输出数组中所有正数和所有负数之和。

    2.青年歌手参加歌曲大奖赛,10位评委对他们进行打分,并尝试对参赛者的平均分进行编程(去掉最高分和最低分)。

    分析:这个问题的核心是排序。 评委打分的 10 个分数按递增(或降序)排列,使用数组计算数组中除第一个和最后一个分数之外的数字的平均分数。

    3.让二维数组b[5][4]有鞍点,即b[i][j]元素的值在第i行中最小,在第j列中最大,尝试编写一个程序找出所有鞍点并输出其下标值。 或者也许不是。

    4.从键盘输入一个数字,然后使用半折搜索方法找出整数一维数组a[20]中数组中第一个元素的个数值。 如果数字不在数组中,请打印“未找到”。

    5. 对以下图形进行编程并打印:

    6.有一封电报,已按照以下规则进行翻译和解码:

    a→z a→z

    b→y b→y

    c→x c→x

    也就是说,第一个字母变成第 26 个字母,第 i 个字母变成 (26-i+1) 个字母。 非字母字符保持不变。 编写一个程序,将密码翻译成原始语言,并输出密码和原始语言。

相关回答
7个回答2024-04-23

方法]创建一个有序数组 a[10]=,最后一个数字是多余的,等于多少并不重要。 >>>More

15个回答2024-04-23

问题 1:main()。

int a,b,c,t; >>>More

16个回答2024-04-23

字符数组的赋值有两种类型:单字符赋值和字符串赋值。 >>>More

14个回答2024-04-23

#include

int main() >>>More

4个回答2024-04-23

您可以尝试输出,scanf 函数是从缓冲区读取的数据,第二个字符串的数据是空格或换行符制表符。 您可以单独读取它们,但在两者之间添加 fflush(stdin); 清除缓冲区。