笨笨孩子 2022-05-26 07:14 采纳率: 73.1%
浏览 32
已结题

数组与字符串 数组表达式不理解

#include<stdio.h>
#include<string.h>
int main(void)
{
char str[4][61],temp,str2[4][61];
int i,j,k;

for(i=0;i<4;i++) 
   while(gets(str[i]), strlen(str[i])<1);

        
for(i=0;i<4;i++)
{
    k=0;
    for(j=0;j<=strlen(str[i]);j++)
    {
        if(str[i][j]!='$')    
        {
            str2[i][k]=str[i][j];
            k++;
        }
                
    }
}
    
for(i=0;i<4;i++)  puts(str2[i]);    

}

这个程序什么意思 j<=strlen(str[i])是什么意思 谁能帮我解释一下整个程序想求什么 能解释一下语句的意思吗🥺

  • 写回答

2条回答 默认 最新

  • 於黾 2022-05-26 07:44
    关注

    str是一个二维char数组,相当于一维字符串数组
    要对二维数组进行拷贝操作,就需要2重循环
    外面的for i就是外层循环,是在分别操作4个字符串
    而内层的for j则是对每个字符串的单个字符进行操作
    strlen函数用来判断数组长度
    str[i]就是二维数组的第i行,它本身也是一个数组,
    strlen(str[i])就是在判断它到底有多长
    也就是字符串数组到底有多长
    其实为了执行效率考虑,应该再加入字符是不是\0的判断,\0是字符串结束符,拷贝它后面的数据是没意义的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月26日