我有这个程序,遇到问题的函数是stringLength函数。我不能更改函数声明,因为它是我们教授给我们的。我遇到的问题是将整数(在本例中为i)强制转换为字符以将其插入字符数组。我在网上查了一下,显然是这样做了
A[0]= char(i+48);
这有效,但是我不想使用它,因为我从互联网上获得了它。 我要使用的是
A[0] = static_cast<char>(i);
如果有另一种方法可以投放它,或者有一种简单的方法将不胜感激。我什至尝试做
A[0] = i;
A[0] = char(i); //or this
这是我的整个程序。最后一个功能是我遇到问题的功能
编辑:我要实现的输出说我使用的字符串是“ Bonjour” 我想要说的输出是“ 7Bonjour”。在Bonjour之前,我的静态演员转换没有任何问题。字符串的长度应该出现在字符串之前
编辑2:我简化了代码,只包含有关我的问题的重要功能和内容
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("input.txt");
ofstream out ("output.txt");
void stringCopy(char *A, char *B);
bool stringCompare(char *A, char *B);
void stringConcatenation (char *A, char *B);
int stringPosition(char *A, char B);
int stringLength(char *A);
int main (){
char str1[15], str2[15];
char pos;
int number;
if(!in){
cout << "File not opening" << endl;
}
else{
cout << "File opened" << endl;
}
in >> str1;
stringLength(str1);
out << " Contents of the array after string Length: " << str1 << endl;
in.close();
out.close();
}
void stringConcatenation (char *A, char *B){
int i;
int j;
for (i = 0; A[i]!='\0';i++){ // find the last position of the first string
}
for (j = 0; B[j]!='\0';j++){
A[i++] = B[j]; // add the first letter of the second string to the next spot of the first string
A[i]='\0';
}
}
int stringLength(char *A){
char arr[15];
int i = 0;
while (A[i]!='\0'){
arr[i]=A[i];
i++; // increment i one more to store NULL position in temp array
}
arr[i]='\0'; //set last position of the temp array to NULL
A[0]= static_cast<char>(i); //static cast i to char and add to first position
A[1]= '\0'; // sets the last position of the first array for the string concatenation to work and detect end of array
stringConcatenation(A, arr);
return i;
}
答案 0 :(得分:1)
要使用<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>That's a Lot of Div</title>
</head>
<body>
<div id="target"></div>
<script src="app.js"></script>
</body>
</html>
,必须执行以下操作:
static_cast
静态转换的实际作用是将int转换为具有相应ASCII值的char。因为A[0] = static_cast<char>(i + 48);
的ASCII值'0'为48,它将给出正确的输出。
但是,如果i <= 9
,这种方法将行不通。
相反,您必须执行以下操作:
i >= 10