问个C语言二维数组元素换位问题
想实现字符串二维数组中两个元素换位,代码是:#include<stdio.h>#defineN3voidmain(){intr;charn[10];charw[N][10...
想实现字符串二维数组中两个元素换位,代码是:#include<stdio.h>
#define N 3
void main()
{
int r;
char n[10];
char w[N][10];
for(r=0;r<N;r++)
{
scanf("%s",w[r]);
}
n=w[0];w[0]=w[2];w[2]=n;
}编译说倒数第二行有问题error C2106: '=' : left operand must be l-value。请问怎么解决。 展开
#define N 3
void main()
{
int r;
char n[10];
char w[N][10];
for(r=0;r<N;r++)
{
scanf("%s",w[r]);
}
n=w[0];w[0]=w[2];w[2]=n;
}编译说倒数第二行有问题error C2106: '=' : left operand must be l-value。请问怎么解决。 展开
2个回答
2013-12-12
展开全部
说明:
C语言的字符串不能直接赋值,只能通过:
1. 字符串拷贝;
2. 内存拷贝;
来实现赋值操作。
完善后的代码如下:
#include <stdio.h>
#include <string.h>
#define N 3
void main()
{
int r;
char n[10];
char w[N][10];
printf("请输入%d个字符串:\n", N);
for(r=0;r<N;r++)
{
scanf("%s",w[r]);
}
printf("\n");
//n=w[0];w[0]=w[2];w[2]=n; // C的字符串不能相接赋值
strcpy(n, w[0]);
strcpy(w[0], w[2]);
strcpy(w[2], n);
printf("换位的字符串依次为:\n");
for (r=0; r<N; r++)
{
printf("%s\n", w[r]);
}
printf("\n");
}
测试结果:
C语言的字符串不能直接赋值,只能通过:
1. 字符串拷贝;
2. 内存拷贝;
来实现赋值操作。
完善后的代码如下:
#include <stdio.h>
#include <string.h>
#define N 3
void main()
{
int r;
char n[10];
char w[N][10];
printf("请输入%d个字符串:\n", N);
for(r=0;r<N;r++)
{
scanf("%s",w[r]);
}
printf("\n");
//n=w[0];w[0]=w[2];w[2]=n; // C的字符串不能相接赋值
strcpy(n, w[0]);
strcpy(w[0], w[2]);
strcpy(w[2], n);
printf("换位的字符串依次为:\n");
for (r=0; r<N; r++)
{
printf("%s\n", w[r]);
}
printf("\n");
}
测试结果:
2013-12-12
展开全部
你的倒数二行里数组赋值有问题, 不能用等好,用strcpy
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询