繁体   English   中英

char字符串中的ascii代码

[英]ascii code in a char string

我如何从datagenerator datapoint*25+65获得单个字符,如a,但我想在str = abcdefg (无论哪个字母)? datapoint创建一个介于0.0和1.0之间的值。 单个字符的程序:

char str;
for(int n; n<60; n++)
{
    str=datapoint*25+65;
    str++;
}
str = '/0';

问题我不知道如何使用这个设置获得像abcd这样的字符串,而不仅仅是像str中的单个字母。

尝试这个:

char str[60 + 1]; /* Make target LARGE enough. */
char * p = str; /* Get at pointer to the target's 1st element. */
for(int n = 0; /* INITIALISE counter. */ 
    n<60; 
    n++)
{
  *p = datapoint*25+65; /* Store value by DE-referencing the pointer before
                         assigning the value to where it points. */
  p++; /* Increment pointer to point to next element in target. */
}
*p = '\0'; /* Apply `0`-terminator using octal notation, 
              mind the angle of the slash! */

puts(str); /* Print the result to the console, note that it might (partly) be
              unprintable, depending on the value of datapoint. */

没有指向当前元素但使用索引的替代方法:

char str[60 + 1]; /* Make target LARGE enough. */
for(int n = 0; /* INITIALISE counter. */ 
    n<60; 
    n++)
{
  str[n] = datapoint*25+65; /* Store value to the n-th element. */
}
str[n] = '\0'; /* Apply `0`-terminator using octal notation, 
                  mind the angle of the slash! */
char str; 
/* should be char str[61] if you wish to have 60 chars
 * alternatively you can have char *str
 * then do str=malloc(61*sizeof(*str));
 */

for(int n; n<60; n++)
/* n not initialized -> should be initialized to 0,
 * I guess you wish to have 60 chars
 */
{
    *(str+n)=datapoint*25+65; 
/* alternative you can have str[n]=datapoint*25+65;
 * remember datapoint is float
 * the max value of data*25+65 is 90 which is the ASCII correspondent for 
 * letter 'Z' ie when datapoint is 1.0

 * It is upto you how you randomize datapoint.
 */
}
str[60] = '\0'; // Null terminating the string.
/* if you have used malloc
 * you may do free(str) at the end of main()
 */

您必须了解,因为您使用的是chars,所以一次只能存储一个字符。 如果要存储多个字符,请使用字符串类或c字符串(字符数组)。 另外,请确保初始化str和n的值。 例如:

str = 'a';
n = 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM