读书人

c语言char数组赋值解决方案

发布时间: 2012-10-17 10:25:46 作者: rapoo

c语言char数组赋值
char splitStr[20];
char ciphertext[100];
int i,flag = 0;
gets(ciphertext); //输入字符串
for(i= 0; i < strlen(ciphertext); i++) //遍历读取字符串每个字符
{
splitStr[flag] = plaintext[i]; //将每个字符复制给splitStr数组
printf("%s",splitStr); //为什么这样输入会出现乱码?
flag++;
}

请问splitStr[flag] = plaintext[i];这句是将splitStr[flag]中存的是plaintext[i]的地址还是值?
printf("%s",splitStr); //为什么这样输入会出现乱码?


[解决办法]
值...
[解决办法]

探讨

你想打印字符串可以一个for循环。乱码是因为,你指向的是一个值或字符,而你用字符串形式打印。你可以单步调试下。

或者

puts(splitStr)

splitStr[flag]中存的是plaintext[i]的值。

[解决办法]
C/C++ code
#include <stdio.h>#include <string.h>int main(int argc, char* argv[]){    char splitStr[20];    char ciphertext[100];    int i,flag = 0;    gets(ciphertext); //输入字符串    for(i= 0; i < strlen(ciphertext); i++) //遍历读取字符串每个字符    {        splitStr[flag] = ciphertext[i]; //将每个字符复制给splitStr数组        flag++;      }    splitStr[flag]='\0';    printf("%s",splitStr); //为什么这样输入会出现乱码?    return 0;} 

读书人网 >C语言

热点推荐