字符逆序
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
输入包括一行。 第一行输入的字符串
输出转换好的逆序字符串。
#include"stdio.h"
#include"string.h"
int main() {
char str1[100];
char str2[100];
scanf_s("%[^\n]", str1);
int i = 0;
int j = 0;
int len = strlen(str1);
for (i = len-1; i >= 0; i--) {
str2[j++] = str1[i];
}
str2[j] = '\0';
printf("%s\n", str2[j]);
return 0;
}
scanf_s后面必须要有大小参数。printf("%s\n", str2[j])里打印的是char字符'\0',应该删掉[j]。
#include<stdio.h>
#include<string.h>
int main() {
int i = 0;
int j = 0;
int len;
char str1[100];
char str2[100] = {0};
scanf_s("%[^\n]", str1,100);
len = strlen(str1);
for (i = len - 1; i >= 0; i--)
str2[j++] = str1[i];
printf("%s\n", str2);
return 0;
}
我去试试
要不你换个声明数组的方法?就用
charstr1=(char)malloc(sizeof(char)*100);来声明,要记得加头文件stdlib.h
修改这两个地方:
scanf("%[^\n]", str1);
printf("%s\n", str2);
另外在头文件后加上 #pragma warning(disable:4996) 皆可以使用scanf函数了。
输入那行改成
scanf_s("%s",str1);